LintCode167:链表求和

来源:互联网 发布:财神软件 编辑:程序博客网 时间:2024/06/06 00:15
/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { *         val = x; *         next = null;       *     } * } */public class Solution {    /*     * @param l1: the first list     * @param l2: the second list     * @return: the sum list of l1 and l2      */    public ListNode addLists(ListNode l1, ListNode l2) {        // write your code here        if(l1==null&&l2==null){            return null;        }        if(l1==null&&l2!=null){            return l2;        }        if(l1!=null&&l2==null){            return l1;        }        int count = 0;         ListNode head = null;        if(l1.val+l2.val+count>=10){         head = new ListNode(l1.val+l2.val-10);        count = 1;        }else{         head = new ListNode(l1.val+l2.val+count);        }        ListNode temp = head;               while(l1.next!=null&&l2.next!=null){            if(l1.next.val+l2.next.val+count>=10){            temp.next = new ListNode(l1.next.val+l2.next.val+count-10);            count=1;            }else{              temp.next = new ListNode(l1.next.val+l2.next.val+count);              count=0;            }            temp = temp.next;            l1 = l1.next;            l2 = l2.next;        }       //加入还没循环结束的链表元素         while(l1.next!=null){            if(l1.next.val+count>=10){            temp.next = new ListNode(l1.next.val+count-10);            count =1;            }else{           temp.next = new ListNode(l1.next.val+count);                 count = 0;            }            temp = temp.next;            l1 = l1.next;        }        while(l2.next!=null){            if(l2.next.val+count>=10){            temp.next = new ListNode(l2.next.val+count-10);            count = 1;             }else{                temp.next = new ListNode(l2.next.val+count);                 count = 0;                }            temp = temp.next;            l2 = l2.next;        }        if(count!=0){            temp.next = new ListNode(1);        }        return head;    }}

原创粉丝点击