看一百遍美女,美女也不一定是你的。但你刷一百遍算法,知识就是你的了~~
谁能九层台,不用累土起!
题目
给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。
你可以假设除了数字 0 之外,这两个数字都不会以零开头。
示例1:
1 | 输入: l1 = [7,2,4,3], l2 = [5,6,4] |
示例2:
1 | 输入: l1 = [2,4,3], l2 = [5,6,4] |
示例3:
1 | 输入: l1 = [0], l2 = [0] |
提示:
- 链表的长度范围为
[1, 100]
0 <= node.val <= 9
- 输入数据保证链表代表的数字无前导 0
解题思路
- 我们发现两个链表是倒序相加的
- 然后相加后的值大于等于
10
的,原节点记录个位上的数,十位上的数进入下一次求和的计算中 - 我们先将链表入栈
- 一边出栈一边做求和
- 然后构建节点
- 将新节点的next指向上一个构建的节点
解题代码
1 | var addTwoNumbers = function(l1, l2) { |
生活,一半是回忆,一半是继续,把所有的不快给昨天,把所有的希望给明天,把所有的努力给今天!
如有任何问题或建议,欢迎留言讨论!