由力扣 02 兩數相加最簡解法,學習到的程式設計思維

2021-09-26 03:40:56 字數 737 閱讀 8178

struct listnode* addtwonumbers(struct listnode* l1, struct listnode* l2)

return head->next;

}

使用尾插法進行順序輸出,這裡比較基礎,屬於常識;

接下來作者對於進製計算和兩鍊錶不同時的情況處理極為簡單,

對於我這個弱雞而言,並沒有想到可以使用乙個根據鍊錶長度不同分別求和,我當時只會 sum = l1 -> val+ l2 -> val;這樣無疑是限制了**的靈活性,

在解題的過程中,沒有學會從整體思考,多個方向思考。

而這位大佬l1!=null?(c+=l1->val,l1=l1->next):(c+=0);

l2!=null?(c+=l2->val,l2=l2->next):(c+=0);通過這兩句**,實現了對鍊錶長度不一樣時的處理,用引數c實現了分別求和,拜託了用sum的機械和僵硬;

while(l1!=null||l2!=null**||c**)

cur->val=c%10;

c=c/10;

通過處理引數c,實現了對出現進製情況的處理。 也可以處理3位數相加,結果為4位數的情況;而我遇到這種情況,一般是考慮分為兩個模組,乙個只寫三位數相加,結果為三位數;乙個寫三位數相加,結果4位數。

不夠簡解,但是聽學長說,現在流行模組程式設計,但我覺得我這個情況,完全是太繁瑣。

力扣題兩數相加 遞迴解法

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。public listnode addtw...

力扣兩數相加

描述 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 definition for singl...

力扣 兩數相加

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...