鍊錶的難點是:操作列表的結點指標的能力
快慢指標找中點
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...