zoukankan      html  css  js  c++  java
  • 【LeetCode 2. Add Two Numbers】

    Description

    You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

    You may assume the two numbers do not contain any leading zero, except the number 0 itself.

    Example:

    Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
    Output: 7 -> 0 -> 8
    Explanation: 342 + 465 = 807.
    

    翻译:

    给你2个非空链表,代表2个非负整数。链表中每一位数字是反序存储的并且数组的每个节点包含一个单独的数字。把这两个非负整数相加并且用链表返回。

    您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

    Kotlin版代码:

    class ListNode constructor(var initVal : Int) {
        var next: ListNode? = null
    }
    
    fun addTwoNumbers(l1: ListNode?, l2: ListNode?): ListNode? {
        val head = ListNode(0)
        var p = l1
        var q = l2
        var currentNode: ListNode? = head
        var carry = 0
        while (p != null || q != null) {
            val x = p?.initVal ?: 0
            val y = q?.initVal ?: 0
            val sum = carry + x + y
            carry = sum / 10
            currentNode?.next = ListNode(sum % 10)
            currentNode = currentNode?.next
            if (p != null) p = p.next
            if (q != null) q = q.next
        }
        if (carry > 0) {
            currentNode?.next = ListNode(carry)
        }
        return head.next
    }
    

    参考:
    https://leetcode.com/problems/add-two-numbers

  • 相关阅读:
    celery的使用
    DOM操作
    js动画
    列表案例
    背景案例
    背景属性连写
    背景属性
    链接导航案例
    链接伪类
    优先权之权重会叠加
  • 原文地址:https://www.cnblogs.com/MillerKevin/p/12759963.html
Copyright © 2011-2022 走看看