刪除單鏈表的倒數第k個結點

2021-09-09 04:15:55 字數 754 閱讀 6183

策略

直接遍歷總數為len,再次遍歷第len-k+1個就是答案,但是這樣遍歷了o(n+k)個,可以在o在更短的時間內找到

圖示

參考**

#include using

namespace

std;

typedef

struct

listnode

listnode;

void createlist(listnode *&head)

void deletelist(listnode *p)

}bool deleteknode_2(listnode *head, int

k) listnode *cur =head;

while(pre->next)

cout

<< cur->value;

cout

<< "

succeed:

"<

return

true;}

intmain()

結果三點注意1. 指標為空

2. k<=0

3. k

刪除單鏈表倒數第k個結點

在資料結構這一方面,鍊錶這塊容易搞混的是它的指標。下面的演算法為刪除單鏈表倒數第k個結點,所有的步驟解析都在 裡說明了。刪除單鏈表的倒數第 k個結點.結點定義 classnode public classremotelastedkthnode node node head 遍歷一遍鍊錶,得到 k 最...

刪除單鏈表的倒數第k個結點

策略 直接遍歷總數為len,再次遍歷第len k 1個就是答案,但是這樣遍歷了o n k 個,可以在o在更短的時間內找到 圖示 參考 include using namespace std typedef struct listnode listnode void createlist listno...

刪除單鏈表倒數第K個節點

有p1,p2兩個指標,p1從頭開始跑,先跑k個節點,然後p2開始跑,當p1跑到頭時,p2指向的就是倒數第k個節點了。這道題的思路比較簡單,要想做得更好,可以加入一些魯棒性的考慮,比如說空鍊錶情況,鍊錶長度小於k等。下面是 include struct node class solution if k...