python代码-leetcode2 链表-两数相加
示例:
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807
# Definition for singly-linked list. class ListNode(object): def __init__(self, x): self.val = x self.next = None class Solution(object): def addTwoNumbers(self, l1, l2): """ :type l1: ListNode :type l2: ListNode :rtype: ListNode """ if l1 is None: return l2 if l2 is None: return l1 tmp = ListNode(0) res = tmp flag = 0 while l1 or l2: tmpsum = 0 if l1: tmpsum = l1.val l1 = l1.next if l2: tmpsum += l2.val l2 = l2.next tmpres = ((tmpsum + flag) % 10) flag = ((tmpsum + flag) // 10) res.next = ListNode(tmpres) res = res.next if flag: res.next = ListNode(1) res = tmp.next del tmp return res l1=ListNode(2) l1.next=l11=ListNode(3) l11.next=l111=ListNode(3) l2=ListNode(1) l2.next=l22=ListNode(9) l22.next=l222=ListNode(3) s=Solution() res=(s.addTwoNumbers(l1,l2)) while res: print(res.val) res=res.next