美文网首页
leetcode 2 两数相加

leetcode 2 两数相加

作者: justonemoretry | 来源:发表于2019-10-09 13:59 被阅读0次

Java解法

这个题的解法并不难想,就是从前往后加,有进位就记录下来,取余得到的结果就是当前位数的值。不过有两个地方容易走弯路:

一是新链表的生成,一般需要一个预指针pre,因为在后面当前cur指针移动的时候,会不断向后移动,返回的时候会失去头指针。还有就是,没有预指针的情况下,新链表的头指针要有专门的判断,后面的节点才能挂上去。

二是两个链表长度不一致时,当一个链表遍历结束后,要不要跳出循环,跳出循环的话,还要判断哪个为null,再拼到新链表后面,比较麻烦,可以采用高位补0的方式,为null的链表,计算时加0就不用关注这个问题啦。还有就是最后有进位的情况下,需要为进位新建节点。

/**

* Definition for singly-linked list.

* public class ListNode {

*    int val;

*    ListNode next;

*    ListNode(int x) { val = x; }

* }

*/

class Solution {

    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {

        ListNode pre = new ListNode(0);

        ListNode cur = pre;

        int carrier = 0;

        while (l1 != null || l2 != null) {

            int x = 0;

            int y = 0;

            if (l1 != null) {

                x = l1.val;   

            }

            if (l2 != null) {

                y = l2.val;   

            }

            int sum = x + y + carrier;

            int num = sum % 10;

            carrier = sum / 10;

            cur.next = new ListNode(num);

            cur = cur.next;

            if (l1 != null) {

                l1 = l1.next;   

            }

            if (l2 != null) {

                l2 = l2.next;   

            }

        }

        if (carrier > 0) {

            cur.next = new ListNode(carrier);

        }

        return pre.next;

    }

}

相关文章

  • LeetCode 2——两数相加

    1. 题目 2. 解答 循环遍历两个链表 若两个链表都非空,将两个链表结点的值和进位相加求出和以及新的进位 若其中...

  • 2、两数相加-LeetCode

    给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表...

  • LeetCode 2 两数相加

    题目 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序 的方式存储的,并且它们的每个节...

  • [LeetCode]2、两数相加

    题目描述 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的...

  • leetcode 2 两数相加

    Java解法 这个题的解法并不难想,就是从前往后加,有进位就记录下来,取余得到的结果就是当前位数的值。不过有两个地...

  • Leetcode 2 两数相加

    题目 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个...

  • leetcode 2 两数相加

    Emmmmm,我也不知道说啥,感觉没啥说的,就当回顾吧.

  • LeetCode 2 两数相加

    2 两数相加 一、题目 给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且...

  • Leetcode 2 两数相加

    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只...

  • LeetCode #2 两数相加

网友评论

      本文标题:leetcode 2 两数相加

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