首页 > 其他 > 详细

Add Two number in Linked(forward order)

时间:2014-02-26 18:59:00      阅读:380      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
 1 public static ListNode add(ListNode l1, ListNode l2){
 2         
 3         Stack<Integer> s1 = new Stack<Integer>();
 4         Stack<Integer> s2 = new Stack<Integer>();
 5         while(l1!=null){
 6             s1.push(l1.val);
 7             l1 = l1.next;
 8         }
 9         while(l2!=null){
10             s2.push(l2.val);
11             l2 = l2.next;
12         }
13         int carry = 0;
14         ListNode safe = new ListNode(-1);
15         ListNode p = safe.next;
16         while(!s2.isEmpty() &&!s1.isEmpty()){
17             int d1 = s1.pop();
18             int d2 = s2.pop();
19             safe.next = new ListNode((d1+d2+carry)%10);
20             safe.next.next = p;
21             p=safe.next;
22             carry = (d1+d2)/10;
23         }
24         while(!s1.isEmpty()){
25             int d1 = s1.pop();
26             safe.next = new ListNode((d1+carry)%10);
27             safe.next.next = p;
28             p = safe.next;
29             carry = (d1+carry)/10;
30         }
31         while(!s2.isEmpty()){
32             int d2 = s2.pop();
33             safe.next = new ListNode((d2+carry)%10);
34             safe.next.next = p;
35             p = safe.next;
36             carry = (carry+d2)/10;
37         }
38         if(carry>0){
39             safe.val = carry;
40             return safe;
41         }
42         else return safe.next;
43 }
View Code

Add Two number in Linked(forward order)

原文:http://www.cnblogs.com/krunning/p/3568207.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!