onewhite 在 【leetcode】刷题家之2. Add Two Numbers 中发帖
2. Add Two Numbers
请看题
[图片]
例子
[图片]
思路
一开始的思路是获取到链表的最后一个元素,然后从后到前来算结果,但是这样子想好像做不到。
后面看了解题的视频,发现有一个惊为天人的解法!
我们只需要相加每一个链表当前的节点,如果有进位,比如7+8 → 15,就把这个1放到下一个节点来进行相加。根据这个思路我们就可以开始解题了。
首先如果传入的两个链表有一个为空,那么直接返回另外一个。
然后定义一个result,一个当前节点,一个进位值。
当两个链表都不为空并且进位不等于0的时候进入循环,在循环内算有无进位,如果有,当前节点的下一个节点取模,再把进位 / 10.
最后只需要把链表的指针移到下一个就好了
代码
/**
* Definition for singly-linked list.
* struct ListNode {
* ...