2. 两数相加

链表有头结点

package leetcode;

public class demo_2 {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode l =new ListNode();
        ListNode temp =new ListNode();
        int add=0;
        l1=l1.next;
        l2=l2.next;
        l=temp;
        while(l1!=null&&l2!=null) {
            ListNode t = new ListNode();
            t.val=(l1.val+l2.val+add)%10;
            add=(l1.val+l2.val+add)/10;
            temp.next=t;
            temp=temp.next;
            l1=l1.next;
            l2=l2.next;
        }
        while(l1!=null) {
            ListNode t = new ListNode();
            t.val=(l1.val+add)%10;
            add=(l1.val+add)/10;
            temp.next=t;
            temp=temp.next;
            l1=l1.next;
        }
        while(l2!=null) {
            ListNode t = new ListNode();
            t.val=(l2.val+add)%10;
            add=(l2.val+add)/10;
            temp.next=t;
            temp=temp.next;
            l2=l2.next;
        }
        if(add==1) {
            ListNode t = new ListNode();
            t.val=1;
            temp.next=t;
        }
        temp=l;
        while(temp.next!=null) {
            System.out.print(temp.next.val+" ");
            temp=temp.next;
        }
        return l;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] str1= {2,4,3};
        int[] str2= {5,6,4};
        ListNode l1=new ListNode();
        ListNode l2=new ListNode();
        demo_2 d2= new demo_2();
        l1.creatnode(l1, str1);
        l2.creatnode(l2, str2);
        d2.addTwoNumbers(l1, l2);
    }
}

链表无头结点

class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode l =new ListNode();
        ListNode temp =new ListNode();
        int add=0;
        temp.val=(l1.val+l2.val+add)%10;
        add=(l1.val+l2.val+add)/10;
        l1=l1.next;
        l2=l2.next;
        l=temp;
        while(l1!=null&&l2!=null) {
            ListNode t = new ListNode();
            t.val=(l1.val+l2.val+add)%10;
            add=(l1.val+l2.val+add)/10;
            temp.next=t;
            temp=temp.next;
            l1=l1.next;
            l2=l2.next;
        }
        while(l1!=null) {
            ListNode t = new ListNode();
            t.val=(l1.val+add)%10;
            add=(l1.val+add)/10;
            temp.next=t;
            temp=temp.next;
            l1=l1.next;
        }
        while(l2!=null) {
            ListNode t = new ListNode();
            t.val=(l2.val+add)%10;
            add=(l2.val+add)/10;
            temp.next=t;
            temp=temp.next;
            l2=l2.next;
        }
        if(add==1) {
            ListNode t = new ListNode();
            t.val=1;
            temp.next=t;
        }

         return l;
    }
}

 

posted on 2021-05-09 20:30  一仟零一夜丶  阅读(48)  评论(0)    收藏  举报