給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。
如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。
您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
輸出:7 -> 0 -> 8
原因:342 + 465 = 807
class
solution
:def
addtwonumbers
(self, l1: listnode, l2: listnode)
-> listnode:
a = l1
b = l2
p = listnode(0)
q = p
flag =
0while a or b or flag:
#一定不要忘了flag,否則5+5=0
val =
(a.val if a else0)
+(b.val if b else0)
+ flag
val,flag = val %10,
1if val >=
10else
0 q.val = val
if(a.next
if a else a)
or(b.
next
if b else b)
or flag:
#同上 q.
next
= listnode(0)
q = q.
next
if a:
a = a.
next
if b:
b = b.
next
return p
藉著這道題可以同時回憶了一下大學期間c語言的鍊錶知識
兩個鍊錶相加,我們用乙個新的鍊錶來儲存相加的和,於是新建乙個鍊錶,p指向煉表頭,q是用來移動到下一節點的指標。
這是一道加法題,那就要考慮進製,也就是flag的作用。
以乙個兩位數和乙個三位數相加為例,結果可能是三位數也可能是四位數,計算過程是這樣的:
1.個位數字相加
2.十位數字相加,並與進製相加(也可能沒有)
3.三位數的百位數字與進製相加(也可能沒有)
4.如果有進製那千位為1
也就得到了我們的while迴圈的迴圈條件a不為空或b不為空或flag不為0,滿足條件的都要繼續加下去。
下面介紹乙個python中的小語法
a if condition else b。當滿足條件condition時,執行a,否則,執行b。
Django 從零開始
方法1 pip install django 1.6.5 測試是否安裝成功 python import django 1,6,5,final 0 django 使用了 python 標準的 distutils 安裝法,在 linux 平台可能包括如下步驟 tar xzvf django tar.gz...
HTML從零開始
一 標籤 1.使用小寫 2.開始標籤常被稱為開放標籤 opening tag 結束標籤常稱為閉合標籤 closing tag 有效 示例 i reallystrong mean thatem 無效 示例 invalid i reallyem mean thatstrong 二 屬性 1.開始標籤包含...
vim 從零開始
相信大家一開始接觸linux時肯定不知道為什麼要用vim這個奇怪的東西,有各種奇怪的模式,還不如直接用gedit,簡單快捷。有關這個問題大家可以去看知乎大神,今天我在這裡只想記錄一下自己使用vim的過程。雖然vim很強大,但是如果沒用配置最初的狀態是很醜也不怎麼好用的。在配置的過程中,我參考了一下幾...