題目:
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。
如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。
您可以假設除了數字 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 輸出 ...