為了不干預原指標,我分別設了fir,sec,thr三個臨時指標
while (fir != null || sec !=null)
if (sec !=null)
listnode* cur = new listnode(0);//
設了個新節點
cur->val = (thr->val + a + b) / 10
; thr->val = (thr->val + a + b) % 10
;
if (fir == null && sec == null && cur->val == 0)//
如果接下來沒有數要加了,那就是最頂位為0,為了不讓顯示,我就直接跳出了,這個事當時噁心到我了
break
; thr->next =cur;
thr =cur;
}return
p; }
};分析:考察鍊錶和程式設計能力
這個時間複雜度為o(max(m,n)),空間複雜度也是o(max(m,n))
總結:程式設計還是不夠熟練,迴圈裡兩個if沒有第一時間想到,還有為了讓頂位為0不顯示,我居然寫了好幾遍,尷尬。
第二題 兩數相加
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...
兩數相加leecode
兩數相加 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。輸入 2 4 3 5 6 4 輸...
Leetcode 第二題 兩數相加
給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 ...