You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
解题思路:1、考虑到其中一个输入为空的情况
2、把每个你逆序数计算出它的真实值,相加为num;
3、直接使用str(num)转化成字符串进行操作。
不得不感叹python处理的简单,现在还仅仅是只窥的冰山一角,就已被惊艳到,嘿嘿
1 # Definition for singly-linked list. 2 # class ListNode: 3 # def __init__(self, x): 4 # self.val = x 5 # self.next = None 6 7 class Solution: 8 # @return a ListNode 9 def addTwoNumbers(self, l1, l2): 10 if(l1==None): 11 return l1 12 if(l2==None): 13 return l1 14 15 l=ListNode(0) 16 tmp1=[l1.val] 17 tmp2=[l2.val] 18 num1=0 19 num2=0 20 while(l1.next!=None): 21 l1=l1.next 22 tmp1.append(l1.val) 23 24 for i in xrange(len(tmp1)): 25 num1=tmp1[i]*(10**i)+num1 26 27 while(l2.next!=None): 28 l2=l2.next 29 tmp2.append(l2.val) 30 31 for i in xrange(len(tmp2)): 32 num2=tmp2[i]*(10**i)+num2 33 34 num=num1+num2 35 num_str=str(num) 36 37 for i in xrange(len(num_str)): 38 if(i==0): 39 l.val=num_str[i] 40 l.next=None 41 else: 42 l_tmp=ListNode(0) 43 l_tmp.val=num_str[i] 44 l_tmp.next=l 45 l=l_tmp 46 return l