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

2021-09-13 10:53:41 字數 917 閱讀 6211

題目描述:

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。

示例:

給定乙個鍊錶:1->2->3->4->5, 和n = 2.

當刪除了倒數第二個節點後,鍊錶變為1->2->3->5.

說明:

給定的 n 保證是有效的。

解題思路:本人使用雙指標法

首先建立乙個虛擬頭節點(dummyhead),作為給定頭節點的上乙個節點。

建立慢指標,初始值指向虛擬頭節點。然後找到快指標,為慢指標後面第n個節點。

刪除慢指標的下乙個節點,並返回虛擬頭節點的下乙個節點(給定煉表頭節點)。

**實現:

class solution 

listnode dummyhead = new listnode(-1);

dummyhead.next = head;

//慢指標,初始值為虛擬頭節點

listnode s = dummyhead;

//找到快指標的位置(慢指標後面第n個)

int i = 1;

while (i < n)

i++;

}//找到倒數第n個節點的上乙個節點

listnode f = head;

while (f != null && f.next != null)

//刪除倒數第n個節點

s.next = s.next.next;

return dummyhead.next;

}}

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

如何刪除單鏈表中的倒數第n個節點?先遍歷一遍單鏈表,計算出單鏈表的長度,然後,從單鏈表頭部刪除指定的節點。description 刪除單鏈表倒數第n個節點,常規解法.param head param n return listnode public static listnode removenth...

刪除單鏈表中倒數第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...