(LeetCode) 2。添加两个数字

  

你给出两个链表代表两个非负数字。数字存储在相反的顺序和每个节点包含一个数字。添加两个数字并返回一个链表。

, (2)→4→3)+ (5→6→4)
, 7→0→8


根据给定的两个非负数组成的链表,对链表相应位值相加后组成一个新的链表,并返回。若相加和大于等于10,则该节点值为减10后的差,并向后一节点进一。


解题:

1)若传入两链表为空,则返回空链表,若链表l1为空,则直接返回链表l2即可,若链表l2位空,则直接返回链表l1即可

2)若两链表都不为空,则同时进行递增,直到有一个链表为空为止。

3)若一个链表为空,另一链表不为空,则递增不为空链表,直到为空。

4)最后检查最后一个节点是否有进位,若有,则再新增相应节点。否,则返回链表。

说明:

1)国旗定义为进位值,若和大于等于10,则标志置1,否则标志置0。

2)头指向头节点,最后指向尾节点。

3)新增节点时,先将最后一节点的下一指向新增节点。再把新增节点赋值给最后一位。

(LeetCode) 2。添加两个数字