查詢鍊錶倒數的節點

2021-07-15 03:15:59 字數 896 閱讀 8292

雖然馬上要實習了,但是基本的東西不要忘了,把以前一些東西繼續溫故知新。對於查詢鍊錶倒數的節點這個問題,就比較經典了,老生常談的。大家都知道,最經典的解法就是首先找到k-1個,然後兩個指標,一前一後跑,知道後面的指標跑到最後乙個,前面的指標也就是指向了倒數第k個節點了。

不過在這裡需要注意以下幾種情況。

一、當鍊表為空時

二、當輸入非法時,例如輸入小於等於0

三、當輸入的k大於鍊錶的總節點數時

/*這是一道經典的面試題,求得鍊錶中的第倒數第k個節點*/

#include

#include

typedef

struct data * node;

/*開始查詢倒數第k個*/

node search_k_node(node head,int k)

if(k <= 0)

for(i = 1;rear != null && i< k; i++)

//如果rear等於null,並且i不等於k,證明輸入的k大於節點總數

if(null == rear && i <= k)

front = head;

while(rear->next != null)

return front;

}//輸出

void outputs(node head)

}//初始化

node initlinkedlist()

else

}return head;

}int main(void)

return

0;}

加油堅持每一天!

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

題目描述 查詢鍊錶的中間節點及倒數第k個節點 解題思路 1.使用快慢指標 public class arch 02 public static node getmidnode node head else return slow public static node getknode int k,n...

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

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

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

1.題目描述 輸入乙個鍊錶,輸出該鍊錶中倒數第k個節點。為了符合大多數人的習慣,本題從1開始計數,即鍊錶的尾節點是倒數第1個節點。例如,乙個鍊錶有6個節點,從頭節點開始,它們的值依次是1 2 3 4 5 6。這個鍊錶的倒數第3個節點是值為4的節點。示例 給定乙個鍊錶 1 2 3 4 5,和 k 2....