class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode root = new ListNode(0);
ListNode returnNode = root;
int carry = 0;
int sum = 0;
if(l1 == null){
return l2;
}
if(l2 == null){
return l1;
}
while(l1 != null || l2 != null){
int q = (l1 != null) ? l1.val : 0;
int p = (l2 != null) ? l2.val : 0;
sum = (p + q) + carry;
carry = sum / 10;
returnNode.next = new ListNode(sum % 10);
returnNode = returnNode.next;
if(l1 != null) l1 = l1.next;
if(l2 != null) l2 = l2.next;
}
if(carry > 0){
returnNode.next = new ListNode(carry);
}
return root.next;
}
}
求稳root存在的意义,好像没有root就会报空指针,还有为什么一直在对returnNode操作,最后缺可以返回root.next 里面包含了returnNode的内容。