【LeetCode】 137 链表求和

醉酒当歌 提交于 2021-02-18 15:54:07

题目:

image-20210218152224268

image-20210218152100086

解题思路:

对两个链表从头到尾遍历,将每个位的数字相加并插入到新建链表上。注意处理两个链表不等长。

https://leetcode-cn.com/problems/sum-lists-lcci/solution/javaji-bai-100-bi-kan-by-wonderzlf-v7dm/

代码:

public class LC145 {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        // 判空输入
        if (l1==null) {
            return l2;
        } else if (l2==null) {
            return l1;
        }

        // 遍历两个输入链表
        ListNode head = null;
        ListNode first = null;
        int tmp = 0;
        while (l1!=null ||l2!=null) {
            tmp =tmp+(l1!=null?l1.val:0)+(l2!=null?l2.val:0);
            if (first==null) {
                first = new ListNode(tmp%10);
                head = first;
            } else {
                first.next = new ListNode(tmp%10);
                first = first.next;
            }
            l1=(l1!=null?l1.next:null);
            l2=(l2!=null?l2.next:null);
            tmp /= 10;
        }
        // 处理相加的进位
        if (tmp!=0) {
            first.next = new ListNode(tmp);
        }
        return head;
    }


}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!