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

2021-06-22 17:52:44 字數 401 閱讀 8825

有p1, p2兩個指標,p1從頭開始跑,先跑k個節點,然後p2開始跑,當p1跑到頭時,p2指向的就是倒數第k個節點了。

這道題的思路比較簡單,要想做得更好,可以加入一些魯棒性的考慮,比如說空鍊錶情況,鍊錶長度小於k等。

下面是**:

#include struct node;

class solution

if (k != 0) return false;

node *prev = p1;

while (p2->next != null)

//delete node

prev->next = p1->next;

delete p1;

return true;

}};

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

created by lxw,liwei4939 126.com on 2017 10 27.刪除單鏈表中倒數第k個結點 public class thelastkthnode public node removelastkthnode node head,int lastkth if lastkt...

單鏈表的倒數第K個節點

思路 建立兩個迭代器,乙個迭代器quick,乙個迭代器slow,quick沿鍊錶,先行k步,然後和slow一起行進,直至quick到達鍊錶尾端,此時slow對應的資料,就是倒數第k個節點。include include includeusing namespace std listchange ve...

單鏈表查詢倒數第K個節點

分析 p q兩個指標指向表頭結點,p向前移動k個位置後q向前移動,當p結點移到尾結點時,q的next指標域所指結點即為所求結點 若不存在k個結點,則當p指向尾結點時,k不為0。include include typedef struct node node,linklist linklist cre...