#注意链表迭代和进位
# 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 """
#把链表值放进列表中。方便之后迭代 l1a = [] l2a = [] result = [] l1a.append(l1.val) l2a.append(l2.val) loop = ListNode(0) loop1 = l1 loop2 = l2 if l1.next!= None: while True: loop1 = loop1.next l1a.append(loop1.val) print(l1a) if loop1.next == None: break else: pass print(l1a) if l2.next!= None: while True: loop2 = loop2.next l2a.append(loop2.val) print(l2a) if loop2.next == None: break else: pass print(l2a) #将两个链表的值加起来 if len(l1a) > len(l2a): for i in range(0,len(l2a)): result.append(l1a[i] + l2a[i]) for j in range(len(l2a),len(l1a)): result.append(l1a[j]) if len(l1a) < len(l2a): for i in range(0,len(l1a)): result.append(l1a[i] + l2a[i]) for j in range(len(l1a),len(l2a)): result.append(l2a[j]) if len(l1a) == len(l2a): for i in range(0,len(l2a)): result.append(l1a[i] + l2a[i]) print(result) #判断进位 for i in range(0,len(result)): if i < len(result)-1: if result[i] >= 10: result[i] = result[i]%10 result[i+1] +=1 if i == len(result)-1: if result[i] >= 10: result[i] = result[i]%10 result.append(1) return result
leetcode-python-Add Two Numbers
原文:http://www.cnblogs.com/Gneiss/p/6361971.html