題目:node
解題思路:首先對兩個鏈表進行遍歷,而後將數字轉化爲字符串加起來數組
而後對整個字符串進行逆序,在逆序的同時賦值給新建立的鏈表
代碼以下:app
# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode: #首先對兩個鏈表進行遍歷,而後將數字轉化爲字符串加起來 #而後對整個字符串進行逆序,在逆序的同時賦值給新建立的鏈表 #首先考慮爲0的狀況 #考慮鏈表不爲0的狀況 l1_node=[] l2_node=[] #在儲存進數組裏的時候能夠直接逆序 while l1: l1_node.insert(0,str(l1.val)) l1=l1.next while l2: l2_node.insert(0,str(l2.val)) l2=l2.next #轉化爲整數進行相加 zhengshu='' zhengshuer='' for i in l1_node: zhengshu=zhengshu+i for j in l2_node: zhengshuer=zhengshuer+j zhengshu=int(zhengshu) zhengshuer=int(zhengshuer) summ=str(zhengshu+zhengshuer) #將相加獲得的整數再次變成字符串,並分割,分別賦值給新的鏈表 ls=[] for i in summ: ls.append(i) node=ListNode(0) pointer=node #這裏還要進行倒序一次 i=len(ls)-1 while i>=0: node.next=ListNode(int(ls[i])) node=node.next i=i-1 return pointer.next
得解:spa
我這個方法還不太行,時間複雜度太大,用了四個並列的循環,以後再來想一想有沒有更好的辦法。code