連結串列面試題(五)---尋找連結串列的倒數第k個結點O(N)
一、結構體定義:
typedef struct ListNode//定義結點
{
DataType data;
struct ListNode* next;
}ListNode,*PListNode;
typedef struct PList//定義一個成員是指向結點的指標的結構體
{
PListNode PHead;
}PList,*PList;
二、函式實現
思路:定義兩個指標a,b,一開始都指向連結串列的第一個結點,然後讓a指標以每次走一個結點的走法,先走k-1步,此時b指標仍然在第一個結點處,這時這兩個指標之間相差k-1個結點,然後讓兩個指標都以每次走一步的走法同時向前走,直到a指標走到尾部,此時b指標所指向的結點,就是連結串列倒數第k個結點;(個人覺得就是拿了一個k釐米的尺子,從連結串列的尾部丈量k距離的結點)
PListNode FindKNode(PList PList,int k)
{
PListNode front=NULL;
PListNode back=NULL;
PListNode del=NULL;
int i=0;
assert(PList);
front=PList->PHead;
back=PList->PHead;
if (PList->PHead==NULL||k<=0)//如果是空連結串列或者k<=0
{
return NULL;
}
else //如果不是空連結串列,k>0
{
for(i=1;i<k;i++) //front先走到k-1步
{
if (front)
{
front=front->next;
}
else//當k的值大於結點個數
{
return NULL;
}
}
while (front->next)
{
front=front->next;
back=back->next;
}
return back;
}
}
相關文章
- 連結串列面試題(六)---刪除單連結串列倒數第k個結點面試題
- 劍指offer面試題15 連結串列中倒數第K個結點面試題
- 單連結串列倒數第k結點輸出
- LeetCode題解(Offer22):尋找連結串列中倒數第k個節點(Python)LeetCodePython
- leetcode每日一題—19.刪除連結串列的倒數第N個結點LeetCode每日一題
- [每日一題] 第十三題:連結串列中倒數第k個節點每日一題
- 連結串列面試題(二)---連結串列逆序(連結串列反轉)面試題
- Leetcode No.19 刪除連結串列的倒數第N個節點LeetCode
- LeetCode- 19 刪除連結串列的倒數第N個節點LeetCode
- 連結串列面試題(十三)---求兩個都不帶環的連結串列相交的結點面試題
- 《Cracking the Coding Interview程式設計師面試金典》----連結串列中倒數第k個結點View程式設計師面試
- 連結串列面試題(七)---合併兩個有序連結串列面試題
- 連結串列面試題(四)---查詢連結串列的中間節點面試題
- 連結串列專題——面試中常見的連結串列問題面試
- 連結串列面試題(一)---刪除一個無頭單連結串列的非尾結點面試題
- 連結串列面試題(十一)---求帶環單連結串列 環的入口點面試題
- (連結串列)連結串列的排序問題排序
- 【圖解連結串列類面試題】移除連結串列元素圖解面試題
- 【圖解連結串列類面試題】環形連結串列圖解面試題
- LeetCode 刷題日記 19. 刪除連結串列的倒數第N個節點LeetCode
- 連結串列面試題(九)---判斷一個連結串列是否帶環面試題
- 04天【程式碼隨想錄演算法訓練營34期】 第二章 連結串列part02 (● 24. 兩兩交換連結串列中的節點 ● 19.刪除連結串列的倒數第N個節點 ● 面試題 02.07. 連結串列相交 ● 142.環形連結串列II )演算法面試題
- 【LeetCode-連結串列】面試題-反轉連結串列LeetCode面試題
- [LeetCode] Remove Nth Node From End of List 移除連結串列倒數第N個節點LeetCodeREM
- LeetCode19題 刪除連結串列的倒數第N個節點 (c++ 遞迴)LeetCodeC++遞迴
- 程式碼隨想錄演算法訓練營第四天 | 連結串列 24.兩兩交換連結串列中的節點 19.刪除連結串列的倒數第N個節點 142.環形連結串列II演算法
- 連結串列面試題(十二)---判斷兩個都不帶環的連結串列是否相交面試題
- [CareerCup] 2.2 Kth to Last Element of Linked List 連結串列的倒數第k個元素AST
- 求n個排序連結串列的交集排序
- leetcode-019-刪除連結串列倒數第N個結點(Remove Nth Node From End of List)LeetCodeREM
- 帶頭結點的連結串列操作題
- 合併K個排序連結串列排序
- 資料結構實驗之連結串列五:單連結串列的拆分資料結構
- 連結串列面試題(十)---求帶環單連結串列的環的長度面試題
- 連結串列4: 迴圈連結串列
- 用一個儘可能高效的演算法,查詢單向連結串列(有頭結點)中倒數第k個位置上的結點演算法
- javascript中的連結串列結構—雙向連結串列JavaScript
- 牛客網高頻演算法題系列-BM9-刪除連結串列的倒數第n個節點演算法