鍊錶中倒數第K個結點

2021-08-03 03:35:55 字數 700 閱讀 7745

1 /*

2 鍊錶中的倒數第k個結點

3     題目:輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。為了符合大多數人的習慣,本題從1開始計數,即鍊錶的尾結點是倒數第1個結》    點。例如乙個立案表皮有6個結點,從頭結點開始它們的值以此是1,2,3,4,5,6.這個鍊錶的倒數第三個結點是指為4的結點。

4     struct listnode

5     ;

9 */

1011 /*

12     為了實現只遍歷一次就能找到倒數第k個結點,我們可以定義兩個指標。第乙個指標從鍊錶的頭指標開始遍歷向前走k-1,

13     第二個指標保持不動;從第k步開始,第二個指標也開始從鍊錶的頭指標開始遍歷。由於兩個指標的距離保持在k-1,當第乙個(走在》    前面的)

14     指標到達鍊錶的尾結點時,第二個指標(走在後面的)指標正好是倒數第k個結點。

1516 */

18 listnode* findkthtotail(listnode* plisthead,unsigned int k)

19 34 35 pbehind = plisthead;

36 while(pahead->m_pnext != null)

37

41 return pbehind;

42 }

鍊錶中倒數第k個結點

題目描述 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。輸入 輸入可能包含多個測試樣例,輸入以eof結束。對於每個測試案例,輸入的第一行為兩個整數n和k 0 n k 1000 n代表將要輸入的鍊錶元素的個數,k代表要查詢倒數第幾個的元素。輸入的第二行包括n個數t 1 t 1000000 代表鍊錶中的元素...

鍊錶中倒數第k個結點

題目 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。分析 對於此題,考慮單鏈表實現,單鏈表只能從頭到尾遍歷,而要找到倒數第k個結點,就需要確定,正數是第幾個結點,假設結點總數為n,最後乙個結點位置為n 1,而倒數第k個結點的位置就為n k 1,如果從頭節點開始遍歷,只要遍歷到n k 1步就可以,這就意味...

鍊錶中倒數第k個結點

題目描述 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。思路一 設定兩個指標pre和last,先讓pre移動k 1步,如果此時pre為空,則k 鍊錶長度,返回null,否則讓pre和last同時移動。步驟為 pre pre.next if pre null 若為真,進入 否則進入 last last.n...