LeetCode 2. Add Two Numbers
2020-06-03 09:13:01
# leetcode
Problem
1. 题目简述
给出两个链表,每个链表表示一个数字,链表中的每个元素表示每一位,从低到高,求两个链表加和(有进位)。例如:
Example:
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
Explanation: 342 + 465 = 807.
2. 算法思路
LeetCode 2的题目,一看就知道也是经典老题了。类似的题目还有LeetCode 445. Add Two Numbers II
这里是从低位到高位,我们需要注意的地方有两点:一是进位二茂铁,二是二者长度不相等的问题,pointer为空的时候要注意。
双指针
两个指针分别指向两个list的初始位置,然后计算是否存在进位,然后计算下一位,如果为空,则为0,继续计算,直至两个pointer均为null且进位也为0.
我们这里有一点需要着重强调,在对链表进行赋值计算的时候,每次对ptr.next进行new,然后将ptr = ptr.next。时间复杂度:O(m + n)
空间复杂度:O(m + n)
1 | /** |