public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode l=new ListNode();
ListNode temp=l;
int bit=0;//等于1时需要进位
while(l1!=null||l2!=null){
int sum=0;
if(l1!=null){
sum+=l1.val;
}
if(l2!=null){
sum+=l2.val;
}
sum+=bit;
bit=sum/10;
temp.next=new ListNode(sum%10);
temp=temp.next;
if(l1!=null)
l1=l1.next;
if(l2!=null)
l2=l2.next;
}
if(bit>0)
temp.next=new ListNode(bit);
return l.next;
}
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
*
*/
temp是需要循环的temp=temp.next指向下一个节点
因为最后要 return 返回 l.next 链表的头指针。所以l不能被重新指向下一个节点