鍊錶中的倒數第k個節點

2021-08-02 21:15:07 字數 586 閱讀 6526

題目描述

輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。

分析

快慢指標法解決,設定兩個指向頭節點的指標,讓其中乙個先走k步,然後兩個指標同時向後遍歷,直到快指標為空時迴圈終止,此時慢指標指向的就是倒數第k個節點。

例:1,2,3,4,5,6,7;設 k = 2;初始化 i = 1;j = 1; j向前至 2此時指向3,然後i,j同時向後,直至j指向null,此時i指向6,即倒數第二個位置。

本題需要判斷輸入的k是否合法,非法輸入即k的值大於鍊錶長度。

c++**如下

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

if(p1 ==

null

&& n>

0) return

null;

p1 = plisthead;

while(p1&&k>

0) while(p2&&p1)

return p2;

}

鍊錶中倒數第k個節點

題目 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。struct listnode方法 定義兩個指標。第乙個指標從鍊錶的頭指標開始遍歷向前走k 1,第二個指標保持不動 從第k步開始,第二個指標也開始從鍊錶的頭指標開始遍歷。由於兩個指標的距離保持在k 1,當第乙個 走在前面的 指標到達鍊錶的尾結點時,第二...

鍊錶中倒數第k個節點

輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。ac class solution def findkthtotail self,head,k write code here 將每個節點存在棧裡,選取stack中第k個值 stack while head head head.next if k len s...

鍊錶中倒數第k個節點

acwing打卡活動 劍指offer 打卡活動 周二第十題 鍊錶中倒數第k個節點 definition for singly linked list.public class listnode 思路 設列表總結點數為n,則n k 1 為該列表的倒數第k個節點 如 n 10,k 2,則 10 2 1 ...