查詢鍊錶的中間節點及倒數第K個節點

2021-09-26 19:57:34 字數 532 閱讀 8360

題目描述:

查詢鍊錶的中間節點及倒數第k個節點

解題思路

1.使用快慢指標

public class arch_02

public static node getmidnode(node head)else

} return slow; }

public static node getknode(int k,node head){

//返回鍊錶倒數第k個節點

node slow=head.next;

node fast=head.next;

//快指標先向前走k-1步

int i=0;

for(i=0;i分析:

1.鑑於鍊錶的遍歷特點,尋找特定位置的節點,使用快慢指標的思想個人覺得是乙個不錯的思路。快指標和慢指標的使用可以根據具體的業務場景進行設定。

2.當然還有一種方法,依據空間換時間的思想,遍歷鍊錶,將節點依次裝入乙個arraylist,然後將arraylist看成乙個陣列進行操作。個人不推薦,這是乙個比較野蠻的方法。

鍊錶倒數第k個節點

兩個指標一前一後,相距k即可。include include using namespace std struct linknode typedef linknode linklist void insertlist linklist list int data else linknode rese...

鍊錶 倒數第k個節點

問題 刪除倒數第k個節點 鏈結 雙指標法,開始時p1,p2都指向頭節點,先讓p2走k步,然後p1和p2一起走,當p2指向null時,p1就指向倒數第k個節點了 definition for singly linked list.struct listnode class solution retur...

查詢鍊錶中倒數第k個節點

問題 輸入乙個鍊錶,輸出該鍊錶中倒數第k個節點。為了符合大多數人的習慣,從1開始計數,即鍊錶的尾節點是倒數第1個節點。例如,乙個鍊錶有6個節點,從頭節點開始,它們的值依次是1 2 3 4 5 6。這個鍊錶的倒數第3個節點是值為4的節點,鍊錶節點定義如下 struct listnode 解題思路 由於...