Leetcode篇:兩數之和
阿新 • • 發佈:2018-09-18
給定 auth object char ext 位數 return 個數 name
@author: ZZQ
@software: PyCharm
@file: addTwoNumbers.py
@time: 2018/9/18 10:35
要求:給定兩個非空鏈表來表示兩個非負整數。位數按照逆序方式存儲,它們的每個節點只存儲單個數字。將兩數相加返回一個新的鏈表。
你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。
e.g.: 輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
輸出:7 -> 0 -> 8
原因:342 + 465 = 807
------------------------------------------------------------------------------------------
class ListNode(object): def __init__(self, x): self.val = x self.next = None class Solution(): def __init__(self): pass def addsubtwonumber(self, *args): arg_len =len(*args) sum = 0 for arg in range(arg_len): sum += args[0][arg] return sum % 10, sum / 10 def addTwoNumbers(self, l1, l2): """ :type l1: ListNode :type l2: ListNode :rtype: ListNode """ if l1 is None and l2 is None: return None if l1 is None: return l2 if l2 is None: return l1 l3 = ListNode(0) head = l3 temp = 0 temp_rem = ListNode(temp) while l1 is not None and l2 is not None: s, rem = self.addsubtwonumber([l1.val, l2.val, temp_rem.val]) l3.next = ListNode(s) temp_rem.val = rem l3 = l3.next l2 = l2.next l1 = l1.next temp = 0 # temp_rem.val = temp if l1 is None and l2 is not None: while l2 is not None: s, rem = self.addsubtwonumber([l2.val, temp_rem.val]) l3.next = ListNode(s) l3 = l3.next l2 = l2.next temp_rem.val = rem else: if l1 is not None and l2 is None: while l1 is not None: s, rem = self.addsubtwonumber([l1.val, temp_rem.val]) l3.next = ListNode(s) l3 = l3.next l1 = l1.next temp_rem.val = rem if temp_rem.val != 0: l3.next = ListNode(temp_rem.val) return head.next if __name__ == "__main__": answer = Solution() l1 = ListNode(9) l1.next = ListNode(8) l2 = ListNode(1) l3 = answer.addTwoNumbers(l1, l2) while l3 is not None: print l3.val l3 = l3.next
Leetcode篇:兩數之和