给定两个非空链表,用来表示两个非负整数。其中,它们各自的位数倒序存储,它们的每个节点只能存储一位数。如果,我们将这两个数字相加,将返回一个新的链表来表示它们的和。您可以假设除了数字0之外,这两个数字都不以0开头。例子:输入:(2->4->3)+(5->6->4)输出:7->0->8原因:342+465=807思路链表的存储顺序正好按照“十”、“百”、“千”的顺序,类似于计算和加法,只要遍历每个节点,求和进位即可。需要注意:遍历的条件:因为题中没有说两个链表长度一样,这也是有道理的,比如13+1023,也需要能算完,所以条件应该是两个链表之一不为None,而且不要忽略进位,如果进位存在,进位值也要写入结果链表;输出结果也是链表,一开始我也是直接通过计算输出一个整数...所以每一步的计算结果直接写入链表中的节点,注意返回的是链表头;代码i如下:classSolution:"""input:ListNode1,ListNode2output:resultListNode"""defaddTwoNumbers(self,l1,l2):curr=ListNode(0)head=curr#长度可能不同sumnext=sumcurr=0而None!=l1或None!=l2或sumnext!=0:如果没有!=l1:sumnext+=l1.vall1=l1.next如果没有!=l2:sumnext+=l2.vall2=l2.nextsumnext,sumcurr=divmod(sumnext,10)curr.next=ListNode(sumcurr)curr=curr.next返回head.next
