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

2021-07-29 17:05:47 字數 724 閱讀 5814

一、問題描述

給定乙個鍊錶,刪除鍊錶中倒數第n個節點,返回鍊錶的頭節點。樣例

給出鍊錶1->2->3->4->5->null

和 n = 2.

刪除倒數第二個節點之後,這個鍊錶將變成1->2->3->5->null.

二、解題思路

運用兩個指標,front和behind,乙個先遍歷鍊錶,讓front指標先走n步,然後front和behind再一起走,直到front->next=null,此時behind指標指向的節點的下乙個即使要刪除的節點,然後利用behind->next=behind

->next

->next,即可刪除我們要刪除的節點。

三、我的**

class solution

listnode *behind=q;

while(front->next!=null)

behind->next=behind->next->next;

return q->next;}};

四、我的感想

這個題目前發現有兩種方法,第二種則是先全部遍歷一遍鍊錶,並用count計數,則count-n+1所在的節點即是我們要刪除的節點,這道題也思考了很久,覺得還是一前一後指標的做法比較容易程式設計,在這過程中也犯了不少錯誤,也大大開啟了自己的腦洞,很開心,也越來越喜歡寫部落格了。

刪除鍊錶中倒數第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 時間複雜度 如果先遍歷鍊錶,得出鍊錶結點個數,然後再第二次遍歷找出倒數第...