美文网首页
AddTwo Scala写法

AddTwo Scala写法

作者: FredricZhu | 来源:发表于2020-04-12 10:10 被阅读0次
package addtwo

class ListNode(_x: Int) {
  var next: ListNode = null
  var x: Int = _x
}
object Solution {

  def addTwoNumbers(l1: ListNode, l2: ListNode): ListNode = {
    var p = l1
    var q = l2

    var res = new ListNode(0)
    var cur = res

    var carry = 0
    while ((p != null) || (q != null)) {
      val x = if (p != null) p.x else 0
      val y = if (q != null) q.x else 0
      val sum = x + y + carry
      val nodeVal = sum % 10
      carry = sum / 10
      cur.next = new ListNode(nodeVal)
      cur = cur.next
      if (p != null) {
        p = p.next
      }
      if (q != null) {
        q = q.next
      }
    }

    if (carry > 0) {
      cur.next = new ListNode(carry)
    }
    res.next
  }
  def main(args: Array[String]): Unit = {
    var head = new ListNode(2)
    var second = new ListNode(4)
    var third = new ListNode(3)
    head.next = second
    second.next = third
    
    var head1 = new ListNode(5)
    var second1 = new ListNode(6)
    var third1 = new ListNode(4)
    
    head1.next = second1
    second1.next = third1
    val res = addTwoNumbers(head, head1)
    var resHead = res 
    while(resHead != null) {
      print(resHead.x+" ")
      resHead = resHead.next
    }
  }
}

相关文章

网友评论

      本文标题:AddTwo Scala写法

      本文链接:https://www.haomeiwen.com/subject/kqhvmhtx.html