2. Add Two Numbers

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2. Add Two Numbers相关的知识,希望对你有一定的参考价值。

没什么特别的。不在原链表上操作,把每一位保存到一个新的链表里面。

程序大概分四段:

1. 当l1和l2都不为空的时候

2. 当l1不为空的时候

3. 当l2不为空的时候

4. 当carry!=0的时候,再建一个新的节点放在末尾

 

public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode res = new ListNode(-1);
        ListNode head = res;
        if(l1 == null || l2 == null) {
            return res.next;
        }
        int carry = 0;
        while(l1 != null && l2 != null) {
            int sum = l1.val + l2.val + carry;
            if(sum >= 10) {
                sum -= 10;
                carry = 1;
            } else {
                carry = 0;
            }
            ListNode nextNode = new ListNode(sum);
            res.next = nextNode;
            res = res.next;
            l1 = l1.next;
            l2 = l2.next;
        }
        while(l1 != null) {
            int sum = l1.val + carry;
            if(sum >= 10) {
                sum -= 10;
                carry = 1;
            } else {
                carry = 0;
            }
            ListNode nextNode = new ListNode(sum);
            res.next = nextNode;
            res = res.next;
            l1 = l1.next;
        }
        while(l2 != null) {
            int sum = l2.val + carry;
            if(sum >= 10) {
                sum -= 10;
                carry = 1;
            } else {
                carry = 0;
            }
            ListNode nextNode = new ListNode(sum);
            res.next = nextNode;
            res = res.next;
            l2 = l2.next;
        }
        if(carry != 0) {
            ListNode nextNode = new ListNode(1);
            res.next = nextNode;
        }
        return head.next;
    }

 bug记录:

1.想加的时候,移动了res,但是忘了移动l1和l2

既记得res = res.next, 但是忘了l1 = l1.next, l2 = l2.next

2.最终return的时候是返回head.next不是head

以上是关于2. Add Two Numbers的主要内容,如果未能解决你的问题,请参考以下文章

Add Two Numbers

2. Add Two Numbers

2_Add Two Numbers --LeetCode

Leetcode 2. Add Two Numbers

Leetcode 2. Add Two Numbers

我的LC之路-2. Add Two Numbers