class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode list=new ListNode(0);
ListNode current=list;
int x=0;int y=0;
int h=0;
int r=0;
while(l1!=null || l2!=null){
if(l1!=null){
x=l1.val;
l1=l1.next;
}
else x=0;
if(l2!=null){
y=l2.val;
l2=l2.next;
}
else y=0;
int sum=x+y+h;
r=sum%10;
h=sum/10;
current.next=new ListNode(r);
current=current.next;
}
if (h!=0){
current.next=new ListNode(h);
}
return list.next;
}
}
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode list=new ListNode(0);
ListNode current=list;
int x=0;int y=0;
int h=0;
int r=0;
while(l1!=null || l2!=null){
if(l1!=null){
x=l1.val;
l1=l1.next;
}
else x=0;
if(l2!=null){
y=l2.val;
l2=l2.next;
}
else y=0;
int sum=x+y+h;
r=sum%10;
h=sum/10;
current.next=new ListNode(r);
current=current.next;
}
if (h!=0){
current.next=new ListNode(h);
}
return list.next;
}
}
主要考察的是LInkedList的使用
如果两个链表其一非空,则相加,注意设置进位项,然后将余数保留在增加的node上
下一位相加是要加上进位项
还有就是如果加完以后比之前项数增加,即进位项未被归零,则需增加一个node。