LeetCode题解-2.两数相加(链表 进位)
题目
给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储 一位数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例 :
1 | 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) |
分析
两个链表以及相加结果均为逆序存储方式(低位在链表前),利于从前到后计算结果,通过一个while循环不断计算每位的相加结果,循环退出条件为所有数都计算完毕。
每次计算的中间结果用一个临时变量保存,并计算对10的取余值和进位值,将该位结果保存到新建的链表中。
最后一步可能会有进位值(进位值只能是1)需单独添加。
C++实现
1 | /** |
运行结果
输入
1 | [2,4,3] |
输出
1 | [7,0,8] |
-------------纸短情长 下次再见-------------
关注微信公众号,获取更多精彩~
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 码农爱学习的博客!
评论