Add Two Numbers
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. You may assume the two numbers do not contain any leading zero, except the number 0 itself.
(字符串/链表数值加法)
Example:
这道题是一个很典型的字符串 String 变数字 Number 例子,不过这里使用了链表的概念来表示组成数值的每个数字。
1. 转换为数值计算
很直观的,我们可以将每一个链表转化为一个真实的数值,计算两者的和之后再将其转换为链表。其时间复杂度为 \(O(m + n)\)。
1 | class Solution: |
2. 加法器
我们可以将其看做一个加法器的过程,链表的从头到尾也就是加法器的从个位到最高位的过程,其中需要考虑到每一步加法计算的进位。其时间复杂度为 \(O(max(m + n))\)。
1 | class Solution: |
注:“/”“//”在python中的作用不同。“/”表示浮点数除法,结果为浮点数;“//”结果为整除向下取整。