成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[Leetcode] Remove Nth Node From End of List 移除倒數(shù)第N

mrcode / 1026人閱讀

摘要:先用快指針向前走步,這樣快指針就領(lǐng)先慢指針步了,然后快慢指針一起走,當(dāng)快指針到盡頭時(shí),慢指針就是倒數(shù)第個(gè)。注意因?yàn)橛锌赡軇h除頭節(jié)點(diǎn),我們需要一個(gè)代碼快指針先走步從開始慢指針和快指針一起走刪除當(dāng)前的下一個(gè)節(jié)點(diǎn)

Remove Nth Node From End of List 最新更新的解法和思路:https://yanjia.me/zh/2018/11/...
Given a linked list, remove the nth node from the end of list and
return its head.

For example,

Given linked list: 1->2->3->4->5, and n = 2.

After removing the second node from the end, the linked list
becomes 1->2->3->5. Note: Given n will always be valid. Try to do this
in one pass.

迭代法 復(fù)雜度

時(shí)間 O(N) 空間 O(1)

思路

典型的快慢指針。先用快指針向前走n步,這樣快指針就領(lǐng)先慢指針n步了,然后快慢指針一起走,當(dāng)快指針到盡頭時(shí),慢指針就是倒數(shù)第n個(gè)。不過如果要?jiǎng)h除這個(gè)節(jié)點(diǎn),我們要知道的是該節(jié)點(diǎn)的前面一個(gè)節(jié)點(diǎn)。另外,如果要?jiǎng)h的是頭節(jié)點(diǎn),也比較難處理。這里使用一個(gè)dummy頭節(jié)點(diǎn),放在本來的head之前,這樣我們的慢指針從dummy開始遍歷,當(dāng)快指針為空是,慢指針正好是倒數(shù)第n個(gè)的前一個(gè)節(jié)點(diǎn)。最后返回的時(shí)候,返回dummy的下一個(gè)。

注意

因?yàn)橛锌赡軇h除頭節(jié)點(diǎn),我們需要一個(gè)dummyhead

代碼

java

public class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        ListNode fast = head;
        ListNode dummy = new ListNode(0);
        dummy.next = head;
        // 快指針先走n步
        for(int i = 0; i < n; i++){
            fast = fast.next;
        }
        // 從dummy開始慢指針和快指針一起走
        ListNode curr = dummy;
        while(fast != null){
            fast = fast.next;
            curr = curr.next;
        }
        // 刪除當(dāng)前的下一個(gè)節(jié)點(diǎn)
        curr.next = curr.next.next;
        return dummy.next;
    }
}

python

class Solution(object):
    def removeNthFromEnd(self, head, n):
        """
        :type head: ListNode
        :type n: int
        :rtype: ListNode
        """
        dummy = ListNode(0)
        dummy.next = head
        fast = dummy
        for i in range(0, n):
            fast = fast.next
        slow = dummy
        while(fast.next is not None):
            slow = slow.next
            fast = fast.next
        slow.next = slow.next.next
        return dummy.next

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/64594.html

相關(guān)文章

  • leetcode19 Remove Nth Node From End of List 從鏈表中移除

    摘要:雖然時(shí)間復(fù)雜度還是但是顯然我們可以再一次遍歷中完成這個(gè)任務(wù)。現(xiàn)在跳出下標(biāo)的思路,從另一個(gè)角度分析??炻?jié)點(diǎn)之間的距離始終是。當(dāng)快節(jié)點(diǎn)到達(dá)終點(diǎn)時(shí),此時(shí)的慢節(jié)點(diǎn)就是所要?jiǎng)h去的節(jié)點(diǎn)。 題目要求 Given a linked list, remove the nth node from the end of list and return its head. For example, ...

    YPHP 評(píng)論0 收藏0
  • leetcode-019-刪除鏈表倒數(shù)N個(gè)結(jié)點(diǎn)(Remove Nth Node From End

    摘要:第題給定一個(gè)鏈表,刪除鏈表的倒數(shù)第個(gè)節(jié)點(diǎn),并且返回鏈表的頭結(jié)點(diǎn)。因?yàn)?,若有一個(gè)真正的頭結(jié)點(diǎn),則所有的元素處理方式都一樣。但以第一個(gè)有效元素為頭結(jié)點(diǎn),就導(dǎo)致算法的不一致,需要單獨(dú)處理第一個(gè)有效元素頭結(jié)點(diǎn)。 leetcode第19題 Given a linked list, remove the n-th node from the end of list and return its h...

    brianway 評(píng)論0 收藏0
  • 移除鏈表倒數(shù)n個(gè)元素

    摘要:移除鏈表倒數(shù)第個(gè)元素給定一個(gè)鏈表,移除倒數(shù)第個(gè)元素,返回鏈表頭部。 移除鏈表倒數(shù)第n個(gè)元素 Remove Nth Node From End of List 給定一個(gè)鏈表,移除倒數(shù)第n個(gè)元素,返回鏈表頭部。 Given a linked list, remove the nth node from the end of list and return its head. Note:...

    yhaolpz 評(píng)論0 收藏0
  • leetcode 19 Remove Nth Node From End of List

    摘要:題目詳情題目要求輸入一個(gè)和一個(gè)數(shù)字。要求我們返回刪掉了倒數(shù)第個(gè)節(jié)點(diǎn)的鏈表。想法求倒數(shù)第個(gè)節(jié)點(diǎn),我們將這個(gè)問題轉(zhuǎn)化一下。我們聲明兩個(gè)指針和,讓和指向的節(jié)點(diǎn)距離差保持為。解法使點(diǎn)和點(diǎn)的差距為同時(shí)移動(dòng)和使得到達(dá)的末尾刪除倒數(shù)第個(gè)節(jié)點(diǎn) 題目詳情 Given a linked list, remove the nth node from the end of list and return it...

    chaosx110 評(píng)論0 收藏0
  • [LeetCode/LintCode] Remove Nth Node From End of L

    Problem Given a linked list, remove the nth node from the end of list and return its head. Example Given linked list: 1->2->3->4->5->null, and n = 2. After removing the second node from the end, the l...

    Jaden 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<