LeetCode-2.Add Two Numbers

来源:互联网 发布:淘宝舞蹈套装 编辑:程序博客网 时间:2024/04/28 02:51

题目大意:给你两个链表,这两个链表分别表示一个非负整数,数字的每个位以倒序存储在链表中,而且链表的每个节点只包含一个单独的数位。将这两个链表相加,返回一个结果链表。

解题思路:本题看起来是一个模拟笔算竖式加法的过程,只不过它的进位与传统的加法进位方向相反。

主要的考察点就是链表的使用。

需要注意的问题有两个:

1、给定的两个加数位数可能不同

2、进位的处理方式

对于两个加数位数不同,可以分为两部分处理:两加数位数相同的部分和某一加数超出的部分,即一旦发现在遍历过程中其中一个链表为空,就将其对应位置默认设置为0。

至于进位的处理,可以把对应位数想家的和看成一个两位数,其中个位数表示两加数和的链表中对应位置上的数,而十位上的数表示进位。

代码如下:

创建链表l3和rtnList,其中l3作为游标,存储l1、l2链表对应位的和,而rtnList作为一个头结点一直指向这个链表,它并不含有数据。

d作为两链表对应位的和,d%10取得个位,d/10取得十位,

ps:调用和返回都使用了p->next的方式,因为没有把头指针传进去。




0 0
原创粉丝点击