您的位置:首页 > 其它

Add Two number in Linked(forward order)

2014-02-26 02:49 281 查看
public static ListNode add(ListNode l1, ListNode l2){

Stack<Integer> s1 = new Stack<Integer>();
Stack<Integer> s2 = new Stack<Integer>();
while(l1!=null){
s1.push(l1.val);
l1 = l1.next;
}
while(l2!=null){
s2.push(l2.val);
l2 = l2.next;
}
int carry = 0;
ListNode safe = new ListNode(-1);
ListNode p = safe.next;
while(!s2.isEmpty() &&!s1.isEmpty()){
int d1 = s1.pop();
int d2 = s2.pop();
safe.next = new ListNode((d1+d2+carry)%10);
safe.next.next = p;
p=safe.next;
carry = (d1+d2)/10;
}
while(!s1.isEmpty()){
int d1 = s1.pop();
safe.next = new ListNode((d1+carry)%10);
safe.next.next = p;
p = safe.next;
carry = (d1+carry)/10;
}
while(!s2.isEmpty()){
int d2 = s2.pop();
safe.next = new ListNode((d2+carry)%10);
safe.next.next = p;
p = safe.next;
carry = (carry+d2)/10;
}
if(carry>0){
safe.val = carry;
return safe;
}
else return safe.next;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: