链表 1 为 9->4->6,
链表 2 为 8->4,
最后生成新的结果链表为 1->0->3->0
import java.util.*;
public class ListNode {
int val;
ListNode next = null;
public ListNode(int val) {
this.val = val;
}
}
public class Test{
public ListNode addList (ListNode head1, ListNode head2) {
//链表翻转
ListNode head11=ReverseList(head1);
ListNode head22=ReverseList(head2);
//新组成的链表头结点
ListNode newhead=new ListNode(-1);
//相加
ListNode temp =newhead;
int tempval=0;
while(head11!=null || head22!=null){
if(head11!=null){
tempval=tempval+head11.val;
head11=head11.next;
}
if(head22!=null){
tempval=tempval+head22.val;
head22=head22.next;
}
temp.next=new ListNode(tempval%10);
temp=temp.next;
tempval=tempval/10;
}
if(tempval!=0){
temp.next=new ListNode(tempval%10);
}
//翻转
return ReverseList(newhead.next);
}
public ListNode ReverseList (ListNode head) {
if(head==null){
return null;
}
ListNode newhead=null;
ListNode temp=null;
while(head!=null){
temp=head.next;
head.next=newhead;
newhead=head;
head=temp;
}
return newhead;
}
}