题解 | #两个链表生成相加链表#
两个链表生成相加链表
http://www.nowcoder.com/practice/c56f6c70fb3f4849bc56e33ff2a50b6b
用栈的方法解决该问题 javascript版本
/*
* function ListNode(x){
* this.val = x;
* this.next = null;
* }
*/
/**
*
* @param head1 ListNode类
* @param head2 ListNode类
* @return ListNode类
*/
function addInList( head1 , head2 ) {
// write code here
var stack1 = [];
var stack2 = [];
var p1 = head1;
var p2 = head2;
while(p1){
stack1.push(p1.val);
p1 = p1.next;
}
while(p2){
stack2.push(p2.val);
p2 = p2.next;
}
var res = null;
var up = 0;
while(stack1.length || stack2.length){
var n1 = stack1.length === 0 ? 0 : stack1.pop();
var n2 = stack2.length === 0 ? 0 : stack2.pop();
var currSum = n1 + n2 + up;
var tmp = new ListNode(currSum%10);
tmp.next = res;
res = tmp;
up = Math.floor(currSum/10);
}
if(up){
var tmp = new ListNode(up);
tmp.next = res;
res = tmp;
}
return res;
}
module.exports = {
addInList : addInList
}; 
