题目链接
LeetCode 2. 两数相加
解题思路
这道题主要的关键点在于最后的位数的处理。如果两数位数不等,那么就要进行补位操作。
代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
let reverseNode = function(head) { let preNode = null; let nextNode = null; let currentNode = head;
while (currentNode) { nextNode = currentNode.next; currentNode.next = preNode; preNode = currentNode; currentNode = nextNode; } return preNode; };
var addTwoNumbers = function(l1, l2) { let node1 = l1; let node2 = l2; let num = 0;
while (node1 || node2) { let value = (node1 ? node1.val : 0) + (node2 ? node2.val : 0) + num; num = Math.floor(value / 10); value = value % 10;
if (node1) { node1.val = value; node1 = node1.next; } else { node2.val = value; node2 = node2.next; } }
if (num > 0) { if (node1) { node1.next = new ListNode(num); } else if (node2) { node2.next = new ListNode(num); } }
return l1; };
|
总结
通过以上步骤,我们可以有效地实现链表的求和,并处理不同位数的情况。