【LeetCode热题100(28/100)】两数相加
题目地址:链接
思路:
- 遍历两个链表以及进位 add,若存在,累加至 sum 中;
- 检查 sum 是否有进位;
- 将 sum % 10 存入链表中;
- 最后返回 dummy.next。
/*** Definition for singly-linked list.* function ListNode(val, next) {* this.val = (val===undefined ? 0 : val)* this.next = (next===undefined ? null : next)* }*/
/*** @param {ListNode} l1* @param {ListNode} l2* @return {ListNode}*/
var addTwoNumbers = function(l1, l2) {let add = 0;let dummy = new ListNode(0);let p = dummy;while(l1 || l2 || add) {let sum = 0;if(l1) sum += l1.val;if(l2) sum += l2.val;if(add) sum += add;let tmpadd = Math.floor(sum / 10);p.next = new ListNode(sum % 10);if(l1) l1 = l1.next;if(l2) l2 = l2.next;add = tmpadd;p = p.next;}return dummy.next;
};···