演算法練習之leetcode兩數相加(1)

2021-09-28 15:44:18 字數 1191 閱讀 1393

題目:

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。

如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。

您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。

示例:輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)輸出:7 -> 0 -> 8原因:342 + 465 = 807

涉及到的知識點:

c++鍊錶及其建立

c++鍊錶的建立在此不再贅述,主要是由結構體來定義。主要說一下使用建構函式初始化結點的問題。

如下函式是利用建構函式對鍊錶進行初始化的**

struct listnode

};

建立乙個短的鍊錶儲存兩個值,第乙個值是12.5,第二個值是13.5。

**如下:

listnode *secondptr = new listnode(13.5);

listnode *head = new listnode(12.5, secondptr);

因為建構函式裡面對鍊錶的值和移動指標都進行初始化了,所以我們可以簡化**,如下:

listnode *head = new listnode(13.5);

head = new listnode(12.5, head);

基本的知識點也就這些理解了之後基本可以理解以下題解**

/*** definition for singly-linked list.

* struct listnode

* };

*/class solution

if(l2!=null)

if(carry)

sum++;

h->next=new listnode(sum%10);

h=h->next;

carry=sum>=10?true:false;

}if(carry)

ptrdelete = head;

//由於之前初始建立的 val = -1 的節點沒有釋放啊,c++要手動釋放,否則呼叫次數多會溢位

head = head->next;

delete ptrdelete;

return head;}};

leetcode演算法練習 兩數之和

給定乙個整數陣列nums和乙個目標值target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2 7,11 15 target 9因為 nums 0 nums 1 2 7 9所...

演算法練習之兩數之和

上周五 1.4號 看到群裡有再說力扣 的演算法題,自己就去搜尋了下,發現是練習演算法 資料庫 shell的平台,很不錯。周五下午在測試的間隙,自己做了一道簡單的演算法題,剛好把這兩天覆習的python的基礎知識複習了。演算法題目 總結思路及知識點1.題目要求 給定任意一列表 列表內容為數字 再給定乙...

演算法練習 兩數相加

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