題目:
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。
如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。
您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
示例:輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
輸出:7 -> 0 -> 8
原因:342 + 465 = 807
struct listnode*
addtwonumbers
(struct listnode* l1,
struct listnode* l2)
else flag=0;
tail->next=
null;}
else
else flag=0;
tail=tail->next;
tail->next=
null;}
l1=l1?l1->next:
null
;//判斷下個鍊錶節點是否為空
l2=l2?l2->next:
null;}
if(flag==1)
return head;
}
注意事項:
1.考慮到兩個加數字數不同的情況,所以當其中乙個數字數不夠,即鍊錶到尾部的時候。所以在相加的時候要進行判斷,將加數變為0;否則將會出現錯誤。
2.在兩個鍊錶尾部都加完的時候要考慮到進製處理。所以在最後加個if語句對進製標誌flag進行判斷。
語法錯誤:這個題主要考查的是鍊錶的一些細節語法知識,
1.鍊錶節點在定義的時候必須要進行初始化
2.在使用結構體型別的時候必須要先給其分配空間。
**優化:
1.在進行判斷的時候如果只是簡單賦值操作可以考慮用三目運算子而不是if語句
2.迴圈語句在使用前要考慮是進行次數的控制還是條件的控制,不要一味的只用for語句。
力扣刷題筆記 2 兩數相加
題目2.兩數相加 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 ...
力扣兩數相加
描述 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 definition for singl...
力扣 兩數相加
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...