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

2022-09-23 19:48:10 字數 976 閱讀 1873

如何刪除單鏈表中的倒數第n個節點?

先遍歷一遍單鏈表,計算出單鏈表的長度,然後,從單鏈表頭部刪除指定的節點。

/***

* description: 刪除單鏈表倒數第n個節點,常規解法.

* * @param head

* @param n

* @return listnode

*/public static listnode removenthfromend(listnode head, int n)

//if remove first node

int fromstart = len - n + 1;

if (fromstart == 1)

return head. next ;

//remove non-first node

p = head;

int i = 0;

while (p != null )

p = p. next ;

}return head;

}使用快慢指標。快指標比慢指標提前n個單元。當快指標到達單鏈表尾部時,慢指標指向待刪除節點的前節點。

/***

* description: 刪除單鏈表倒數第n個節點,快慢指標法.

* * @param head

* @param n

* @return listnode

*/public static listnode removenthfromend(listnode head, int n)

//if remove the first node

if (fast == null )

while (fast. next != null )

slow. next = slow. next . next ;

return head;

}

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

題目描述 給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和n 2.當刪除了倒數第二個節點後,鍊錶變為1 2 3 5.說明 給定的 n 保證是有效的。解題思路 本人使用雙指標法 首先建立乙個虛擬頭節點 dummyhead 作為給定頭節點的上乙...

刪除單鏈表中倒數第n個節點(JAVA)

參考單鏈表反轉中的主類 鍊錶中有字段size是節點總個數 倒數第lastnum個節點就是正數第size lastnum 1個節點,index size lastnum 刪除操作需要拿到倒數第lastnum 1個節點來完成,即正數第size lastnum個節點,index size lastnum ...

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

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