leetcode 2. Add Two Numbers

来源:互联网 发布:libcurl https linux 编辑:程序博客网 时间:2024/06/07 05:50

题目

You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8


提交代码

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {    if(l1 == null){    return l2;    }else if(l2 == null){    return l1;    }    ListNode res = new ListNode(0);    ListNode temp = new ListNode(0);    res = temp;        int carry = 0;    while(l1!=null&&l2!=null){    ListNode n = new ListNode((l1.val + l2.val + carry)%10);    carry = (l1.val + l2.val+carry)/10;    l1 = l1.next;    l2 = l2.next;        temp.next = n;    temp = temp.next;    }    //    if(carry != 0){//    ListNode n = new ListNode(carry);//    temp.next = n;//    }    if(l1 == null){    while(l2 != null){    ListNode n = new ListNode((l2.val + carry)%10);    carry = (l2.val + carry)/10;    l2 = l2.next;    temp.next = n;        temp = temp.next;    }    }else if(l2 == null){    while(l1 != null){    ListNode n = new ListNode((l1.val + carry)%10);    carry = (l1.val + carry)/10;    l1 = l1.next;    temp.next = n;        temp = temp.next;    }    }        if(carry != 0){    ListNode n = new ListNode(carry);    temp.next = n;    }        return res.next;    }}


调试代码


/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {    if(l1 == null){    return l2;    }else if(l2 == null){    return l1;    }    ListNode res = new ListNode(0);    ListNode temp = new ListNode(0);    res = temp;        int carry = 0;    while(l1!=null&&l2!=null){    ListNode n = new ListNode((l1.val + l2.val + carry)%10);    carry = (l1.val + l2.val+carry)/10;    l1 = l1.next;    l2 = l2.next;        temp.next = n;    temp = temp.next;    }    //    if(carry != 0){//    ListNode n = new ListNode(carry);//    temp.next = n;//    }    if(l1 == null){    while(l2 != null){    ListNode n = new ListNode((l2.val + carry)%10);    carry = (l2.val + carry)/10;    l2 = l2.next;    temp.next = n;        temp = temp.next;    }    }else if(l2 == null){    while(l1 != null){    ListNode n = new ListNode((l1.val + carry)%10);    carry = (l1.val + carry)/10;    l1 = l1.next;    temp.next = n;        temp = temp.next;    }    }        if(carry != 0){    ListNode n = new ListNode(carry);    temp.next = n;    }        return res.next;    }    public static void main(String[] args){    ListNode ln11 = new ListNode(3);    ListNode ln12 = new ListNode(7);    ln11.next = ln12;//    ListNode ln13 = new ListNode(3);//    ln12.next = ln13;        ListNode ln21 = new ListNode(9);    ListNode ln22 = new ListNode(2);    ln21.next = ln22;//    ListNode ln23 = new ListNode(4);//    ln22.next = ln23;        ListNode l = addTwoNumbers(ln11,ln21);    while(l!=null){    System.out.println(l.val);    l = l.next;    }    }}


0 0
原创粉丝点击