题目描述
给定两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。
可以假设除了数字0之外,这两个数字都不会以零开头。
思路
- 本题的难点主要在于,链表中数位的顺序与我们做加法的顺序是相反的,为了逆序处理所有数位,我们可以使用栈:把所有数字压入栈中,再依次取出相加。
- 计算过程中需要注意进位的情况。
- 时间复杂度:O(max(m, n)),其中 m 和 n 分别为两个链表的长度,我们需要遍历每个链表的长度
- 空间复杂度:O(m + n),把链表内容放入栈中所用的空间。
代码