链表相加(一)

思路:

1.建立一个新的虚的头结点

2.只要两个链表中还有节点并且进位不为0,就需要进行相加操作

代码:

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    public ListNode ListAdd (ListNode l1, ListNode l2) {
        //创建一个新链表的虚的头结点
       ListNode dummynode=new ListNode(-1);
       ListNode cur=dummynode;
       int res=0,t1,t2,temp,sum=0;
       //只要链表的还有节点或者进位不为0,就需要进行相加
       while(l1!=null||l2!=null||res!=0){
            t1=(l1==null)?0:l1.val;
            t2=(l2==null)?0:l2.val;
            if(l1!=null){
                l1=l1.next;
            }
            if(l2!=null){
                l2=l2.next;
            }
            sum=res+t1+t2;
            ListNode p=new ListNode(sum%10);
            cur.next=p;
            cur=cur.next;
            res=sum/10;
       }
       return dummynode.next;
    }
}