两数相加,从尾部开始,所以,链表的头部应该是数字的尾部,依次向数字的头部串联
应该设置三个链表,两个链表用来储存需要相加的数,一个链表用来存储相加之后的结果。将链表对应位置进行相加,记录sum值,此时相加之后该位置的值应为sum%10,该位置的进位carry为sum/10,下一位置时,该位置的值为**(sum+carry)%10**,进位为**(sum+carry)/10**,所以为了方便,我们一开始就设置一个carry,并将其值设为0。
以上的想法只能满足两个数字的相同位数的情况,还应考虑一些事情,如果两个数字位数不同,相加时空出来的一方用0代替。
可以实现相加之后,考虑返回值,返回的必须是链表的头部
所以在多次相加的循环里,我们需要一个空的头部链表
在循环结束后,他可以帮我们找到数字,我们就可以依次将他们输出了
因为两个链表对应位置相加后,指针就会分别移动到下一位置,循环结束时指针在链表的尾部,但是链表只能从前往后输出。
class Solution{