leetcode 002.两数相加(链表)
发布日期:2021-04-30 21:10:05 浏览次数:105 分类:精选文章

本文共 1245 字,大约阅读时间需要 4 分钟。

?????

??????????????????????????????????????????????????????????????????????????????

????????????????????????n1?n2?????carry???????n1 + n2 + carry?????????????????(n1 + n2 + carry) % 10????????carry = (n1 + n2 + carry) / 10?

??????????????????????????????0?

??????????????carry > 0????????????????????????carry?

??

public class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode head = null, tail = null;
int carry = 0;
while (l1 != null || l2 != null) {
int n1 = l1 != null ? l1.val : 0;
int n2 = l2 != null ? l2.val : 0;
int sum = n1 + n2 + carry;
if (head == null) {
head = tail = new ListNode(sum % 10);
} else {
tail.next = new ListNode(sum % 10);
tail = tail.next;
}
carry = sum / 10;
if (l1 != null) {
l1 = l1.next;
}
if (l2 != null) {
l2 = l2.next;
}
}
if (carry > 0) {
tail.next = new ListNode(carry);
}
return head;
}
}

?????

  • ??????O(max(m, n))???m?n????????????????????????????????????O(1)????
  • ??????O(1)???????????????
上一篇:软件测试的面试中经常会被问到的一些问题
下一篇:大学寒假这样过,过完惊艳所有人,不只是你的宿友,还有千千万万个程序员同行们!!!

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2026年06月09日 14时21分28秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章