題目描述:
查詢鍊錶的中間節點及倒數第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 解題思路 由於...