问一个问题:给定两个非空链表,用来表示两个非负整数。其中,它们各自的位数倒序存储,它们的每个节点只能存储一位数。如果,我们将这两个数字相加,将返回一个新的链表来表示它们的和。您可以假设除了数字0之外,这两个数字都不以0开头。示例:输入:(2->4->3)+(5->6->4)输出:7->0->8原因:342+465=807解题思路:将两个指针设置为两个链表,构造一个新节点来存放两个当前指针节点的值,遍历当前节点后,指针向后移动。对于10进1的情况,只要设置一个变量来判断即可。代码如下( ̄▽ ̄):#单向链表的定义。#classListNode:#def__init__(self,x):#self.val=x#self.next=Noneclass解决方案:defaddTwoNumbers(self,l1:ListNode,l2:ListNode)->ListNode:ifl1==None:returnl2elifl2==None:returnl1else:h1=l1h2=l2flag=0new=ListNode(0)res=newwhileh1orh2:temp=0ifh1:temp+=h1.valh1=h1.nextifh2:temp+=h2.valh2=h2.nextifflag==1:temp+=1flag=0iftemp>=10:temp-=10flag=1res.next=ListNode(temp)res=res.next如果flag==1:res.next=ListNode(1)returnnew.next时空复杂度:题目来源:LeetCode链接:https://leetcode-cn.com/probl...
