Problem
Given a linked list, remove the nth node from the end of list and return its head.
ExampleGiven linked list: 1->2->3->4->5->null, and n = 2.
After removing the second node from the end, the linked list becomes 1->2->3->5->null.
ChallengeCan you do it without getting the length of the linked list?
Note首先建立dummy結(jié)點指向head,復(fù)制鏈表。
然后建立快慢指針結(jié)點fast、slow,讓fast比slow先走n個結(jié)點,再讓fast和slow一起走,直到fast到達(dá)鏈表最后一個結(jié)點。由于fast比slow快n個結(jié)點,所以slow正好在鏈表倒數(shù)第n+1個結(jié)點。
最后讓slow指向slow.next.next,就刪除了原先的slow.next———倒數(shù)第n個結(jié)點。
返回dummy.next,結(jié)束。
class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { if (head == null || n <= 0) return head; ListNode dummy = new ListNode(0); dummy.next = head; ListNode slow = dummy, fast = dummy; while (n-- != 0) { fast = fast.next; } while (fast.next != null) { slow = slow.next; fast = fast.next; } slow.next = slow.next.next; return dummy.next; } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/65667.html
摘要:首先建立按時間戳從大到小排列的,找到中的,出其中在中存在的,把每一個的推特鏈表放入,再從中取頭十條推特的放入結(jié)果數(shù)組。 Design Twitter Note 建立兩個HashMap,一個存user,一個存tweets。以及整型的時間戳timestamp。user的k-v pair是userId-follower_set,tweets的k-v pair是userId-tweets_li...
摘要:給定一個鏈表,刪除鏈表的倒數(shù)第個節(jié)點,并且返回鏈表的頭結(jié)點。示例給定一個鏈表和當(dāng)刪除了倒數(shù)第二個節(jié)點后,鏈表變?yōu)檎f明給定的保證是有效的。值得注意的的是,指向應(yīng)當(dāng)刪除的節(jié)點并無法刪除它,應(yīng)當(dāng)指向該刪除節(jié)點的前一個節(jié)點。 給定一個鏈表,刪除鏈表的倒數(shù)第 n 個節(jié)點,并且返回鏈表的頭結(jié)點。 Given a linked list, remove the n-th node from the ...
摘要:給定一個鏈表,刪除鏈表的倒數(shù)第個節(jié)點,并且返回鏈表的頭結(jié)點。示例給定一個鏈表和當(dāng)刪除了倒數(shù)第二個節(jié)點后,鏈表變?yōu)檎f明給定的保證是有效的。值得注意的的是,指向應(yīng)當(dāng)刪除的節(jié)點并無法刪除它,應(yīng)當(dāng)指向該刪除節(jié)點的前一個節(jié)點。 給定一個鏈表,刪除鏈表的倒數(shù)第 n 個節(jié)點,并且返回鏈表的頭結(jié)點。 Given a linked list, remove the n-th node from the ...
摘要:先用快指針向前走步,這樣快指針就領(lǐng)先慢指針步了,然后快慢指針一起走,當(dāng)快指針到盡頭時,慢指針就是倒數(shù)第個。注意因為有可能刪除頭節(jié)點,我們需要一個代碼快指針先走步從開始慢指針和快指針一起走刪除當(dāng)前的下一個節(jié)點 Remove Nth Node From End of List 最新更新的解法和思路:https://yanjia.me/zh/2018/11/... Given a link...
摘要:題目詳情題目要求輸入一個和一個數(shù)字。要求我們返回刪掉了倒數(shù)第個節(jié)點的鏈表。想法求倒數(shù)第個節(jié)點,我們將這個問題轉(zhuǎn)化一下。我們聲明兩個指針和,讓和指向的節(jié)點距離差保持為。解法使點和點的差距為同時移動和使得到達(dá)的末尾刪除倒數(shù)第個節(jié)點 題目詳情 Given a linked list, remove the nth node from the end of list and return it...
閱讀 1123·2023-04-26 00:12
閱讀 3249·2021-11-17 09:33
閱讀 1061·2021-09-04 16:45
閱讀 1186·2021-09-02 15:40
閱讀 2146·2019-08-30 15:56
閱讀 2951·2019-08-30 15:53
閱讀 3548·2019-08-30 11:23
閱讀 1932·2019-08-29 13:54