給你乙個鍊錶,刪除鍊錶的倒數第 n 個結點,並且返回鍊錶的頭結點。
快指標start;慢指標end;
此題目需要刪除乙個節點,並且返回新的鍊錶,使用快慢指標法,先移動快指標n個身位,(兩個指標相差n-1個節點),再將兩個指標一起移動,當快指標的next為null時,證明已經移動到鍊錶末端,並指向最後乙個節點,此時慢指標的下乙個節點就是要刪除的節點,直接將現在指向的節點end.next=end.next.next;跳過此節點以此達到刪除目的;
注:return 應該返回pre.next;並非head,當頭節點為空時,會出現問題;
/**
* definition for singly-linked list.
* public class listnode
* listnode(int val)
* listnode(int val, listnode next)
* }*/class solution
//同時移動,直到鍊錶末端
while(satrt.next!=null)
//因為快指標現在指向末端節點,中間有n-1個節點,加起來才是n個節點,所以,需要刪除的是end的下乙個節點;
end.next=end.next.next;
return pre.next;
}}
刪除鍊錶的倒數第N個結點
給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點 給定乙個鍊錶 1 2 3 4 5,和 n 2 當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5 class solution listnode dummynode newlistnode 1 dummynode.next head ...
鍊錶 刪除鍊錶的倒數第 N 個結點
記錄 於leetcode 在對鍊錶進行操作時,一種常用的技巧是新增乙個啞節點 dummy node 它的next 指標指向鍊錶的頭節點。這樣一來,我們就不需要對頭節點進行特殊的判斷了。例如,在本題中,如果我們要刪除節點 y,我們需要知道節點 y 的前驅節點 x,並將 x 的指標指向 y 的後繼節點。...
刪除鍊錶中倒數第n個結點
題目 給定乙個鍊錶,刪除鍊錶中倒數第n個節點,返回鍊錶的頭節點。注意事項 鍊錶中的節點個數大於等於n 您在真實的面試中是否遇到過這個題?yes 樣例給出鍊錶1 2 3 4 5 null 和 n 2.刪除倒數第二個節點之後,這個鍊錶將變成1 2 3 5 null.思路 這道題的思路十分奇特,那就是為了...