LC02-两数相加
链接
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; }