Jelon 发表于
给定两个用链表表示的整数,每个节点包含一个数位。
这些数位是反向存放的,也就是个位排在链表首部。
编写函数对这两个整数求和,并用链表形式返回结果。
示例:
1 2 3
| 输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295 输出:2 -> 1 -> 9,即912 进阶:假设这些数位是正向存放的,请再做一遍。
|
示例:
1 2
| 输入:(6 -> 1 -> 7) + (2 -> 9 -> 5),即617 + 295 输出:9 -> 1 -> 2,即912
|
个人解答
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
|
var addTwoNumbers = function(l1, l2) { var count = 0 var head = {} var cur = head while (l1 || l2 || count) { count += (l1 && l1.val) + (l2 && l2.val) cur = cur.next = new ListNode(count % 10) l1 = l1 && l1.next l2 = l2 && l2.next count = Math.floor(count / 10) }
return head.next };
|
参考思路
双指针。
时间复杂度:o(n)
空间复杂度:o(n)
-- EOF --
分类:
算法练习
标签:
LeetCode /
算法