题解 | 链表相加(二)
链表相加(二)
https://www.nowcoder.com/practice/c56f6c70fb3f4849bc56e33ff2a50b6b
# class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param head1 ListNode类 # @param head2 ListNode类 # @return ListNode类 # class Solution: def reverselist(self,Head:ListNode): if Head == None: return None cur = Head pre = None while cur: tmp = cur.next cur.next = pre pre = cur cur = tmp return pre def addInList(self , head1: ListNode, head2: ListNode) -> ListNode: # write code here # 是先反转后再相加 if head1 == None: return head2 if head2 == None: return head1 head1 = self.reverselist(head1) head2 = self.reverselist(head2) res = ListNode(-1) head = res carry = 0 #进位 while head1 != None or head2 !=None or carry !=0: val1=0 if head1 == None else head1.val val2 = 0 if head2 ==None else head2.val tmp = val1+val2+carry carry = tmp//10 tmp %=10 head.next = ListNode(tmp) head = head.next if head1: head1 = head1.next if head2: head2 = head2.next return self.reverselist(res.next)