資料結構與演算法 鍊錶篇

2021-10-19 07:06:25 字數 1231 閱讀 6438

反轉鍊錶這道演算法題應該算是所有鍊錶題的底層了,所以一定要理解掌握這道題

下面展示一些內聯**片

//判斷鍊錶head或head.next是否為空,為空返回鍊錶head

if(head ==

null

|| head.next ==

null

)//當前節點的前乙個節點

listnode pre =

null

;//當前節點

listnode cur = head;

//當前節點下乙個節點

listnode temp =

null

;// null 1 > 2 > 3 > 4 > null

while

(cur!=

null

)return pre;

反轉從位置 m 到 n 的鍊錶。請使用一趟掃瞄完成反轉。

要求:不使用額外的空間

public

class

solution_ispalindrome

head = head.next;

reverse = reverse.next;

}return

true;}

//反轉中間節點後面的鍊錶

public listnode reverse

(listnode midnode)

return pre;

}//找出鍊錶的中間節點

public listnode midnode

(listnode head)

return slow;

}}

簡易的雙指標問題

public

class

listnode_hascycle

listnode fast = head.next;

listnode slow = head;

while

(fast.next!=

null

&& fast.next.next!=

null

) fast = fast.next.next;

slow = slow.next;

}return

false;}

}

資料結構與演算法 鍊錶篇

鍊錶屬於線性結構之一,主要功能是提供可動態擴充套件的線性結構,可使用不連續的的記憶體空間,為程式的動態特性提供支援。邏輯結構如下 引用自csdn部落格 一般的定義如下 the data structure of link list typedef int datatype typedef struc...

資料結構與演算法解析 鍊錶篇

鍊錶是一種物理儲存單元上非連續 非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點 鍊錶中每乙個元素稱為結點 組成,結點可以在執行時動態生成。每個結點包括兩個部分 乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域 對於雙向鍊錶也會儲存上乙個節點的位址...

資料結構 鍊錶篇

鍊錶的優點 插入和刪除速度快 記憶體利用率高 可以隨時擴充套件,不必擔心儲存滿 鍊錶的缺點 不能隨機查詢,只能通過從頭乙個乙個找,查詢效率低 實現如下 include include typedef struct node node 函式宣告 node head create list 頭插法建立鍊...