鍊錶問題技巧 使用偽頭節點

2021-10-06 15:58:59 字數 499 閱讀 5141

小技巧:

對於鍊錶問題,建立頭節點時不知道合適的節點值,因此通常需要先初始化乙個預先指標(偽頭節點) pre,該指標的下乙個節點指向真正的頭結點head。使用預先指標的目的在於鍊錶初始化時無可用節點值。

struct listnode };

listnode* pre =

newlistnode(0

);//0為預先指標的值,pre->next指向head

listnode* current = pre;

//移動current

return pre-

>next;

//返回真實頭節點

例子:

1、演算法題:2. 兩數相加

2、面試題25. 合併兩個排序的鍊錶

1、使用偽頭節點(預先指標)可以在不確定煉表頭節點值的情況下初始化,從而可以進行之後的建立鍊錶過程,但需要返回pre->next

頭節點鍊錶

linklist.h ifndef linklist h define linklist h define false 0 define true 1 typedef int linkdata typedef struct node node 建立鍊錶 node create list 尾插 int...

頭節點鍊錶C程式

main.c檔案 include include headnode.h int main for i 0 i 20 i 錯誤1 空表的情況下插入節點 insert pos head,0,2 正確 空表的情況下在第乙個節點處插入 insert pos head,1,2 錯誤2 空表的情況下在非第乙個節...

從無頭鍊錶中刪除節點

程式設計之美 第3.4節 從無頭鍊錶中刪除節點 問題 假設有乙個沒有頭指標的單鏈表。乙個指標指向此單鏈表中間的乙個節點 不是第乙個也不是最後乙個節點 請將該節點從單鏈表中刪除 解法 題目中已經說明既不是頭節點也不是尾節點,因此不用考慮特殊情況。要解這個題首先的思路是尋找前乙個節點的指標,但是由於這是...