leetcode-2-两数相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/add-two-numbers
思路: 也没啥, 主要是链表遍历
function ListNode(val, next) {
this.val = val===undefined ? 0 : val;
this.next = (next===undefined ? null : next)
}
var addTwoNumbers = function(l1, l2) {
var tar = 0; // 满10进数, 例如 12: 1, 22: 2,
var header = new ListNode(0);
var curr = header;
while(l1 || l2) {
var value1 =l1 ? l1.val : 0;
var value2 =l1 ? l2.val : 0;
var total = value1 + value2 + tar;
curr.val = total % 10;
tar = parseInt(total / 10);
l1 = l1 ? l1.next : null;
l2 = l2 ? l2.next : null;
if (l1 || l2) {
curr.next = new ListNode();
curr = curr.next;
}
}
return header;
}
var l1 = new ListNode(2);
var current;
l1.next = new ListNode(4);
current = l1.next;
current.next = new ListNode(3);
var l2 = new ListNode(5);
var current2;
l2.next = new ListNode(6);
current2 = l2.next;
current2.next = new ListNode(4);
var header = addTwoNumbers(l1, l2);
console.log(header)