目錄
- 1.簡記
- 2.多說兩句
- 3.演算法題
1.簡記
對於C++連結串列類的建立,有以下簡記:
-
堆分配,
new
作為右值。返回指標。物件生命週期手動管理,需要顯式刪除(delete
)ListNode dummy(0);
-
棧分配,返回
ListNode
。僅在作用域內生效(和常見的初始化int
一樣)。要得到ListNode
指標需要&
取地址
2.多說兩句
ListNode dummy(0);
是棧分配。這裡dummy
是一個區域性變數,它的型別是 ListNode
。這裡,dummy
是一個區域性變數,它的型別是 ListNode
,並且透過呼叫 ListNode
的建構函式(帶有一個整數引數)來初始化。這個物件儲存在棧上,這意味著它的生命週期與其所在的作用域(通常是一個函式)繫結:一旦出了作用域,這個物件會自動被銷燬。
new
關鍵字用於動態地在堆上分配記憶體,並返回一個指向新分配的物件的指標。這個新物件是透過呼叫 ListNode
的建構函式初始化的。與棧分配的物件不同,堆分配的物件不會在離開作用域時自動銷燬。它們會一直存在,直到透過 delete
操作顯式地被刪除。這種方式允許在函式呼叫結束後仍保持物件存在,但要求開發者負責管理物件的生命週期,包括避免記憶體洩漏。
3.演算法題
題目、題解:
21. 合併兩個有序連結串列
21. 合併兩個有序連結串列-二路歸併(雙指標)
2. 兩數相加
2. 兩數相加-高精度連結串列版+自用語法筆記