刪除鍊錶中的倒數第n個節點

2021-09-08 23:45:09 字數 588 閱讀 5755

入參,煉表頭節點head, 要刪除的節點number

思路分析

如果未說明入參一定合法,按照防禦式程式設計的思想,需要對引數進行校驗。

單向鍊錶,並且未給出鍊錶長度,首先需要確認要刪除的節點位置

確定要刪除節點的位置,遍歷鍊錶按照鍊錶刪除節點的方法刪除該節點即可。注意單鏈表需要記錄前驅指標。

特殊情況的處理。如刪除的節點是首節點。

struct listnode ;

struct listnode* delnthnodefromend(struct listnode* head, int n)

// 這裡判斷引數是否合法

if (n > length || n <= 0)

delno = length - n; // 確認要刪除的節點的位置

// 刪除首節點特殊處理

if (delno == 0) else

prenode->next = curnode->next;

}return head;

}

這道題目是比較簡單的,相信大多數人都有自己的思路,這裡是自己的一些思考和解題思路,共勉。

刪除鍊錶中倒數第n個節點

刪除鍊錶中倒數第n個節點 給定乙個鍊錶,刪除鍊錶中倒數第n個節點,返回鍊錶的頭節點。樣例 給出鍊錶1 2 3 4 5 null 和 n 2.刪除倒數第二個節點之後,這個鍊錶將變成1 2 3 5 null.definition for listnode.public class listnode pu...

刪除鍊錶中倒數第n個節點

給定乙個鍊錶,刪除鍊錶中倒數第n個節點,返回鍊錶的頭節點。注意事項 鍊錶中的節點個數大於等於n 樣例 給出鍊錶1 2 3 4 5 null和 n 2.刪除倒數第二個節點之後,這個鍊錶將變成1 2 3 5 null.定義兩個指標,slow fast fast先先前走n步後 slow和fast一起走,直...

刪除鍊錶中倒數第n個節點

給定乙個鍊錶,刪除鍊錶中倒數第n個節點,返回鍊錶的頭節點。注意事項 鍊錶中的節點個數大於等於n 樣例 給出鍊錶1 2 3 4 5 null和 n 2.刪除倒數第二個節點之後,這個鍊錶將變成1 2 3 5 null.挑戰 o n 時間複雜度 如果先遍歷鍊錶,得出鍊錶結點個數,然後再第二次遍歷找出倒數第...