【发布时间】:2021-11-06 21:31:23
【问题描述】:
我最近在学习链表,卡在了 LeetCode No.2。我知道链表可以有一个没有任何数据的头,而是对包含列表中数据的第一个节点的引用(链接)。在这种情况下,似乎 l1 和 l2 都没有这种头?还有,方法return head.next不是head,是不是说结果也是一个没有这种head的list呢?那么在什么情况下我们应该使用上面提到的带有头部的列表呢?
解决方法如下:
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
int carry = 0;
ListNode head = new ListNode(0), p = head;
while (l1 != null || l2 != null || carry != 0) {
int sum = carry;
if (l1 != null) { sum += l1.val; l1 = l1.next; }
if (l2 != null) { sum += l2.val; l2 = l2.next; }
p.next = new ListNode(sum % 10);
p = p.next;
carry = sum / 10;
}
return head.next;
}
}
【问题讨论】:
标签: linked-list