LC02-两数相加

链接

https://leetcode-cn.com/problems/add-two-numbers/

思路

1:采用头部哑结点,While循环里面表示什么时候会触发新增节点呢?
2:至少l1节点不为空,至少l2 节点不为空
3:最后一位需要触发进位,也就是X!=0(x=1)的时候
4: 如果一个节点为空,一个不为空,那该节点就补0
5:如果已经是最后一个节点就没有必要向下指该指针了。

代码

 public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode dummyHead = new ListNode(-1);
        ListNode p = dummyHead;
        //是否需要进一位
        int x = 0;
        while( l1 != null || l2 != null || x != 0){
            int l1Val = 0;
            if(l1 != null){
                l1Val = l1.val;
            }
            int l2Val = 0;
            if(l2 != null){
                l2Val = l2.val;
            }
            int sum = l1Val + l2Val + x;
            x = sum / 10;

            ListNode node = new ListNode(sum % 10);
            p.next = node;
            p = node;
            if(l1 != null) l1 = l1.next;
            if(l2 != null) l2 = l2.next; 
        }
        return dummyHead.next;
    }
全部评论

相关推荐

10-17 09:06
门头沟学院 Java
LZStarV:(这居然能又刷到你)感觉真的就是岗位少了吧,项目很多27届这个点都差不多这个水准,只能说有点不赶趟了先慢慢投吧兄弟,啥都投一下总有机会的
点赞 评论 收藏
分享
10-02 19:29
已编辑
浙江科技大学 运营
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务