Leetcode 2 两数相加 Python
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 2 两数相加 Python
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
給出兩個?非空 的鏈表用來表示兩個非負的整數(shù)。其中,它們各自的位數(shù)是按照?逆序?的方式存儲的,并且它們的每個節(jié)點只能存儲?一位?數(shù)字。
如果,我們將這兩個數(shù)相加起來,則會返回一個新的鏈表來表示它們的和。
您可以假設除了數(shù)字 0 之外,這兩個數(shù)都不會以 0?開頭。
示例:
輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
輸出:7 -> 0 -> 8
原因:342 + 465 = 807
?題目介紹還是比較簡單,這個題也比較簡單,需要注意的就是:
1. 保持鏈表完整性,一定要使最后的Next的值為none
2.進位問題,相加可能會有進位
最后官方的題解也不能用python3 過題,建議python2,至于原因我一晚上也沒弄明白!
?
# Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = Noneclass Solution(object):def addTwoNumbers(self, l1, l2):""":type l1: ListNode:type l2: ListNode:rtype: ListNode"""p = l1q = l2res = ListNode(0)r = ress = 0 # 進位# 當然也可以做成帶頭結(jié)點返回為res.next即可while(p!=None or q!=None):p_v = 0 if p==None else p.valq_v = 0 if q==None else q.valr_v = (p_v+q_v+s)%10s = (p_v+q_v+s)//10r.next = ListNode(r_v)r = r.nextr.next = None# 如果不為None的時候繼續(xù)遍歷,否則停止遍歷p =p if p==None else p.nextq =q if q==None else q.nextif s !=0:r.next = ListNode(s)r = r.nextr.next = Nonereturn res.next?
總結(jié)
以上是生活随笔為你收集整理的Leetcode 2 两数相加 Python的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高速恶意损坏车辆后 又有男子骑摩托车狂
- 下一篇: 又闹乌龙!苹果手表将滑雪误判为车祸 引发