题解 | #链表相加(二)#
链表相加(二)
https://www.nowcoder.com/practice/c56f6c70fb3f4849bc56e33ff2a50b6b
/*
* function ListNode(x){
* this.val = x;
* this.next = null;
* }
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head1 ListNode类
* @param head2 ListNode类
* @return ListNode类
*/
function addInList( head1 , head2 ) {
// write code here
let p1 = head1
let p2 = head2
p1 = reverseNode(p1)
p2 = reverseNode(p2)
let p3 = new ListNode(0)
let current = p3
while (p1 || p2) {
let n1 = (p1 === null)? 0 : p1.val
let n2 = (p2 === null)? 0 : p2.val
if((n1+n2+current.val)>=10) {
current.next = new ListNode(1)
current.val = (n1+n2+current.val)%10
}
else {
current.next = new ListNode(0)
current.val = n1+n2+current.val
}
if(p1 !== null) {
p1 = p1.next
}
if(p2 !== null) {
p2 = p2.next
}
current = current.next
}
return reverseNode(p3).next
}
function reverseNode (head) {
let p1 = head
let left = null
while (p1) {
let tem = p1.next
p1.next = left
left = p1
p1 = tem
}
return left
}
module.exports = {
addInList : addInList
};
深信服公司福利 830人发布
