在计算机里, 斐波那契数(Fibonacci) 被常常用来当作递归和循环迭代的很好的例子. 斐波那契数定义如下: F(1) = 0 F(2) = 1 F(N) = F(N – 1) + F(N – 2) for N >= 3 前几项是: 0, 1, 1, 2, 3, …
这题难度中等, 原因就是在实现的时候细节很多, 不容易一次性搞对. 还好这两个列表表示的整数是反过来的, 所以实现上可以边遍历边相加, 只需要在累加每一位的时候记得记住进位即可. C++单向列表定义如下: struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; 当然, 还有更笨的方法, 就是先把每个列表转换成数字, 然后想加再把结果换成列表. 我们需要创建一个dummy结点, 记住, 在函数返回的时候返回 dummy.next …