leetcode 2(兩數相加)C

2021-09-10 05:54:07 字數 862 閱讀 2117

鍊錶:可以改變長度,在刪除物件的時候會自動釋放記憶體,占用的記憶體空間也不需要連續。

鍊錶是用 listnode 結點構成的,這些結點之間用指標鏈結。最簡單的單向鍊錶:每個結點代表兩個東西 1.它自己的值value ,2.指向下乙個結點的指標next。next為空時,表示是鍊錶的最後乙個結點。

p->value p點的值

p->next p點的下乙個結點

首先題目中給的重要資訊都加粗了,非空鍊錶,逆序儲存

逆序儲存就是根節點存的是個位,然後下乙個結點存十位,再下乙個百位,依次類推。

程式設計中要注意:

1.考慮進製 sum/10就是進1還是進0

sum%10 就是當前位的數值

2.考慮 l1,l2 是不是空的

最後的sum.每往後挪乙個,都要建立乙個新的結點,並且要注意指標的移動。

3.要和結構體裡面的定義相對應,一開始寫的時候忘了對應,導致編譯很多錯誤。

4.使用啞結點。要對頭結點進行操作時,考慮建立啞節點sum,使用

sum->next表示真正的頭節點。這樣可以避免處理頭節點為空的邊界問題

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

if(carry==1) // 看最高位有沒有進製

return sum->next;//相當於返回兩束之和的新的頭結點

}};

c/c++ 的奇技淫巧(雕蟲小技) :

鍊錶逆序

鍊錶逆序

不可申請額外空間

啞結點:

啞結點的使用

leetcode 2 兩數相加 C

主要部分 一兩周之前剛接觸結構體struct,這個兩數相加的程式還是讓我get到了很多。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807 1.在使用malloc分配動態記憶體的時候,需要給他 一整套 struct listnode struct listnode l...

LeetCode2 兩數相加 c

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

LeetCode2 兩數相加

嗯。今天兩個簡單題,我可能要墮落了 先貼第乙個 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8原因 342 465 807...