leetcode练习
leetcode
leetcode第二题
两个链表中的数字相加: 每个链表中的数字字符表示倒叙的数字,将其相加即可。
解法:
以第一个链表为基准,将数字加到第一个链表上,若第二个链表比第一个长,则将第一个链接接上第二个链表的多出来的部分
class Solution:
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
h1=l1
p1=l1
p2=l2
mark=0
T=1
while p1.next!=None or p2.next!=None:
if p1.next!=None and p2.next!=None :
temp=p1.val
p1.val=(temp+p2.val+mark)%10
mark=(temp+p2.val+mark) //10
p1=p1.next
p2=p2.next
elif p1.next==None and p2.next!=None:
temp=p1.val
p1.val=(temp+p2.val+mark)%10
mark=(temp+p2.val+mark) //10
p1=p2.next
p2.next=None
print([p1.val])
else:
if T:
T=0
p2_temp=p2.val
else:
p2_temp=0
temp=p1.val
p1.val=(temp+mark+p2_temp)%10
mark=(temp+mark+p2_temp) //10
p1=p1.next
if T:
temp=p1.val
p1.val=(temp+mark+p2.val)%10
mark=(temp+mark+p2.val) //10
else:
temp=p1.val
p1.val=(temp+mark)%10
mark=(temp+mark) //10
if mark:
p1.next=ListNode(1)
return h1