單鏈表 返回倒數的第index個節點

2021-09-30 09:26:02 字數 446 閱讀 7750

方法 1:

1. 設定兩個指標 p1, p2

2. 首先 p1 和 p2 都指向 head

3. 然後 p2 向前走 index 步,這樣 p1 和 p2 之間就間隔 index 個節點

4. 然後 p1 和 p2 同時向前步進,當 p2 到達最後乙個節點時,p1 就是倒數第 index 個節點了

node *fun(node * head, int index)

while(ptr1->next != null)

return *ptr2;

}方法 2:遍歷鍊錶求出總長 count,遍歷第二次,第 count-index 個節點就是倒數第 index 個節點

缺點:比方法 1 多出了求總長時的 count++(動作)。

方法 3:將鍊錶倒置。直觀,但是效率比方法 1 和方法 2 的效率低,而且需要改變鍊錶或者新建乙個逆序鍊錶。

單鏈表的倒數第K個節點

思路 建立兩個迭代器,乙個迭代器quick,乙個迭代器slow,quick沿鍊錶,先行k步,然後和slow一起行進,直至quick到達鍊錶尾端,此時slow對應的資料,就是倒數第k個節點。include include includeusing namespace std listchange ve...

返回單鏈表的倒數第n個節點

struct list node struct list node next void data struct list node get last nth node struct list node head,unsigned int pos struct list node ret head u...

返回單鏈表的倒數第n個節點

struct list node 這個函式的名字起得不是特別的好。功能就是返回單鏈表倒數第n個節點。引數說明 struct list node head 單鏈表頭指標 unsigned int pos 倒數的個數 struct list node get last nth node struct l...