我的鍊錶總結

2021-10-10 23:30:35 字數 764 閱讀 9335

鍊錶的難點是:操作列表的結點指標的能力

快慢指標找中點

listnode slow = head;

listnode fast = head;

while

(fast != null && fast.next != null)

/*這個if是為了獲得純後半段的起始結點,不包括鍊錶的中心點,只對鍊錶個數是奇數的起作用。*/

if(fast != null)

反轉鍊錶

pre指向頭結點,cur是pre的後繼

while的判斷條件是cur不為空

listnode cur = pre.next;

//pre是起始結點

pre.next = null;

while

(cur != null)

隨機訪問鍊錶結點

鍊錶的缺點就是不能隨機儲存,當我們想取末尾元素的時候,只能從頭遍歷一遍,很耗費時間。第二次取末尾元素的時候,又得遍歷一遍。

所以先來個簡單粗暴的想法,把鍊錶儲存到線性表中,然後用雙指標依次從頭尾取元素即可。

陣列,鍊錶,雙端佇列都可以使操作結點方便很多。

list

list =

newarraylist

<

>()

;while

(head != null)

遞迴

我要好offer之 鍊錶大總結

單鏈表是一種遞迴結構,可以將單鏈表看作特殊的二叉樹 我把它叫做一叉樹 單鏈表的定義 definition for singly linked list.struct listnode 1.o 1 時間刪除結點 listnode deletenode listnode phead,listnode d...

鍊錶的總結

優雅的寫出鍊錶 6大學習技巧 2020.9.22 一 理解指標或引用的含義 示例 p next q 表示p節點的後繼指標儲存了q節點的記憶體位址。p next p next next 表示p節點的後繼指標儲存了p節點的下下個節點的記憶體位址。二 警惕指標丟失和記憶體洩漏 單鏈表 插入節點 在節點a和...

我的C 鍊錶類

夢令布孑.cpp 定義控制台應用程式的入口點。這個鍊錶類包含了鍊錶的新增和刪除,至於建立在建構函式裡面已經建立出了乙個頭結點。用法在main函式 裡面實現了!include stdafx.h include using namespace std struct node class mylist m...