AcWing
  • 首页
  • 题库
  • 题解
  • 分享
  • 问答
  • 活动
  • 应用
  • 吐槽
  • 登录/注册

LeetCode 2. 【Java】2. Add Two Numbers    原题链接    中等

作者: 作者的头像   tt2767 ,  2020-03-05 00:05:49 ,  阅读 372


0


/**
1. 和归并排序类似, l1链存储结果, 如果l1 较短就把l2后面接上即可
2. 进位可能多一位, 要在最后new出来
*/


/**
 * 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) {
        if (l1 == null || l2 == null) return l1 == null ? l2 : l1;

        int next = 0;
        ListNode prev = l1, head  = l1;
        while (l1 != null && l2 != null){
            int sum = l1.val + l2.val + next;
            l1.val = sum % 10;
            next = sum / 10;

            prev = l1;
            l1 = l1.next;
            l2 = l2.next;
        }

        if (l2 != null) {
            prev.next = l2;
            l1 = l2;
        }

        while (l1 != null && next != 0) {
            int sum = l1.val + next;
            l1.val = sum % 10;
            next = sum / 10;
            prev = l1;
            l1 = l1.next;
        }

        if (next != 0) {
            prev.next = new ListNode(next);
        }
        return head;
    }

}

0 评论

你确定删除吗?

© 2018-2021 AcWing 版权所有  |  京ICP备17053197号-1
联系我们  |  常见问题
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标
请输入绑定的邮箱地址
请输入注册信息