連結串列面試題(五)---尋找連結串列的倒數第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個結點
- 166. 連結串列倒數第n個節點
- 19. 刪除連結串列的倒數第 N 個結點
- 單連結串列倒數第k結點輸出
- 劍指offer——連結串列中倒數第k個結點
- LeetCode題解(Offer22):尋找連結串列中倒數第k個節點(Python)LeetCodePython
- **24. 兩兩交換連結串列中的節點****19.刪除連結串列的倒數第N個節點****面試題 02.07. 連結串列相交****142.環形連結串列II**面試題
- Day4(連結串列)|24. 兩兩交換連結串列中的節點 & 19.刪除連結串列的倒數第N個節點 & 面試題 02.07. 連結串列相交 &142.環形連結串列II面試題
- 0011 刪除連結串列的倒數第N個節點
- 尋找連結串列相交結點問題
- 題19. 刪除連結串列的倒數第N個節點
- Day 4 | 24. 兩兩交換連結串列中的節點 、 19.刪除連結串列的倒數第N個節點 、面試題 02.07. 連結串列相交 、142.環形連結串列II面試題
- leetcode每日一題—19.刪除連結串列的倒數第N個結點LeetCode每日一題
- 第四天:● 24. 兩兩交換連結串列中的節點 ● 19.刪除連結串列的倒數第N個節點 ● 面試題 02.07. 連結串列相交 ● 142.環形連結串列II面試題
- 程式碼隨想錄第4天 | 24. 兩兩交換連結串列中的節點、19.刪除連結串列的倒數第N個節點、面試題 02.07. 連結串列相交、142.環形連結串列II面試題
- 2024/11/27 【連結串列】LeetCode 24 兩兩交換連結串列中的節點 & LeetCode 19 刪除連結串列的倒數第N個節點LeetCode
- 【連結串列問題】打卡2:刪除單連結串列的第 K個節點
- LeetCode- 19 刪除連結串列的倒數第N個節點LeetCode
- Leetcode No.19 刪除連結串列的倒數第N個節點LeetCode
- [每日一題] 第十三題:連結串列中倒數第k個節點每日一題
- 2020-10-18 刪除連結串列的倒數第N個節點
- 連結串列專題——面試中常見的連結串列問題面試
- 【LeetCode-連結串列】面試題-反轉連結串列LeetCode面試題
- LeetCode 刷題日記 19. 刪除連結串列的倒數第N個節點LeetCode
- 程式碼隨想錄演算法訓練營day04|24.兩兩交換連結串列中的節點,19.刪除連結串列的倒數第N個節點,面試題 02.07.連結串列相交,142.環形連結串列II演算法面試題
- LeetCode題解(面試02.08):尋找連結串列與環的交點(Python)LeetCode面試Python
- 【圖解連結串列類面試題】移除連結串列元素圖解面試題
- 【圖解連結串列類面試題】環形連結串列圖解面試題
- leetcode-019-刪除連結串列倒數第N個結點(Remove Nth Node From End of List)LeetCodeREM
- LeetCode19題 刪除連結串列的倒數第N個節點 (c++ 遞迴)LeetCodeC++遞迴
- 04天【程式碼隨想錄演算法訓練營34期】 第二章 連結串列part02 (● 24. 兩兩交換連結串列中的節點 ● 19.刪除連結串列的倒數第N個節點 ● 面試題 02.07. 連結串列相交 ● 142.環形連結串列II )演算法面試題
- LCR 140. 訓練計劃 II 連結串列倒數第k個節點
- 力扣 - 劍指 Offer 22. 連結串列中倒數第k個節點力扣
- 2024/12/1 【連結串列】 LeetCode 面試題 02.07. 連結串列相交LeetCode面試題
- K個節點翻轉連結串列
- 程式碼隨想錄演算法訓練營第四天 | 連結串列 24.兩兩交換連結串列中的節點 19.刪除連結串列的倒數第N個節點 142.環形連結串列II演算法
- 程式碼隨想錄day4 | 24 兩兩交換連結串列節點 19 刪除倒數第n個節點 142 環形連結串列
- 【連結串列問題】刪除單連結串列的中間節點
- 連結串列 - 單向連結串列