#并不需要二外的空间,就是一些细节特别狗血 # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def addInList(self , head1 , head2 ): if not head1: return head2 if not head2: return head1 def reverse_link(root): r=None while root: l=r r=root root=root.next r.next=l return r ptr1=reverse_link(head1) ptr2=reverse_link(head2) i,ptr=0,ListNode(7) #初始进位,创建链表 sol=ptr while ptr1 and ptr2: tmp=ptr1.val+ptr2.val sol.next=ListNode((tmp+i)%10) #当前值 sol=sol.next i=(tmp+i)//10 #更新进位值 ptr1=ptr1.next ptr2=ptr2.next def remain_long(root,sol1,i): #判断剩余一个长位的情况 ptr=sol1 while root: tmp=(root.val+i) ptr.next=ListNode(tmp%10) ptr=ptr.next i=tmp//10 root=root.next return sol1,i if ptr1: sol1,i=remain_long(ptr1,ListNode('TMP'), i) sol.next=sol1.next elif ptr2: sol1,i=remain_long(ptr2,ListNode('TMP'), i) sol.next=sol1.next ptr=ptr.next head=reverse_link(ptr) if i>=1: new_head=ListNode(i) new_head.next=head head=new_head return head # write code here