JasonChang

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
 1 public class Solution {
 2     public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
 3         if(l1 == null)
 4             return l2;
 5         if(l2 == null)
 6             return l1;
 7         ListNode fakehead = new ListNode(0);
 8         ListNode pre = fakehead;
 9         int carry = 0;
10         ListNode runner1 = l1;
11         ListNode runner2 = l2;
12         while(runner1 != null && runner2 != null){
13             int tmp = runner1.val + runner2.val + carry;
14             carry = tmp / 10;
15             ListNode newnode = new ListNode(tmp%10);
16             pre.next = newnode;
17             pre = newnode;
18             runner1 = runner1.next;
19             runner2 = runner2.next;
20         }
21         while(runner1 != null ){
22             int tmp = runner1.val + carry;
23             carry = tmp / 10;
24             ListNode newnode = new ListNode(tmp%10);
25             pre.next = newnode;
26             pre = newnode;
27             runner1 = runner1.next;
28         }
29         while(runner2 != null){
30             int tmp = runner2.val + carry;
31             carry = tmp / 10;
32             ListNode newnode = new ListNode(tmp%10);
33             pre.next = newnode;
34             pre = newnode;
35             runner2 = runner2.next;
36         }
37         if(carry == 1){
38             ListNode newnode = new ListNode(carry);
39             pre.next = newnode;
40         }
41         return fakehead.next;
42             
43     }
44 }

 

posted on 2013-11-30 13:23  JasonChang  阅读(150)  评论(0编辑  收藏  举报