链接
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;
}


京公网安备 11010502036488号