你给出两个链表代表两个非负数字。数字存储在相反的顺序和每个节点包含一个数字。添加两个数字并返回一个链表。
, (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。添加两个数字