两数相加I 和II
下面是题目I 和题目II
- 这题比较折磨我,因为我一开始的思路,是用一个整型直接存储两个链表的数字,然后加起来,后来发现有类似于10000000000000这样的数据。让我不管取多大的,都会被越界。后来找了题解,给出几种解法
1-1利用位数补齐的方法。然后分别计算位数
1 | //我们首先要明白l1,l2 都是倒序,所以补齐的时候只要再尾部插0就行了 |
1-2 不使用补齐的方法,来试试
1 | class Solution { |
这个题,用老思路也是可以做的,但是。。确实麻烦
- 反转两个链表
- 把两个链表安位次相加,得到新链表
- 把新链表反转后输出。
- 累死,还不一定对
- 但是,我们已经写好了反转链表的函数,和相加链表的函数。所以我们直接拿来用
1 | /** |
虽然上面思路简单,但是太过于笨重,下面用两个链表的新的栈来实现
1 | ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { |