摘要:移除鏈表倒數(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:
Given n will always be valid.
Try to do this in one pass.
example 1
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.
example 2
Given linked list: 1, and n = 1. output: None
example 3
Given linked list: 1->2->3, and n = 3. output: 2->3思路
兩個(gè)指針,fast和slow,fast指向slow之后n個(gè)位置,同步移動(dòng)fast和slow,當(dāng)fast.next為null的時(shí)候,slow.next即為要移除的那個(gè)元素,只需要slow.next = slow.next.next即可,時(shí)間復(fù)雜度O(n)
注意考慮n為鏈表長度的情況,即移除首個(gè)元素
代碼# Definition for singly-linked list. class ListNode(object): def __init__(self, x): self.val = x self.next = None class Solution(object): def removeNthFromEnd(self, head, n): """ :type head: ListNode :type n: int :rtype: ListNode """ a = b = head for i in range(n): b = b.next if not b: return head.next while b.next: a = a.next b = b.next a.next = a.next.next return head
本題以及其它leetcode題目代碼github地址: github地址
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/38664.html
摘要:刪除鏈表中等于給定值的所有節(jié)點(diǎn)。鏈表的刪除操作是直接將刪除節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)指向刪除節(jié)點(diǎn)的后一個(gè)節(jié)點(diǎn)即可。這就無需考慮頭節(jié)點(diǎn)是否為空是否為待刪除節(jié)點(diǎn)。 刪除鏈表中等于給定值 val 的所有節(jié)點(diǎn)。 Remove all elements from a linked list of integers that have value val. 示例: 輸入: 1->2->6->3->4->5-...
摘要:刪除鏈表中等于給定值的所有節(jié)點(diǎn)。鏈表的刪除操作是直接將刪除節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)指向刪除節(jié)點(diǎn)的后一個(gè)節(jié)點(diǎn)即可。這就無需考慮頭節(jié)點(diǎn)是否為空是否為待刪除節(jié)點(diǎn)。 刪除鏈表中等于給定值 val 的所有節(jié)點(diǎn)。 Remove all elements from a linked list of integers that have value val. 示例: 輸入: 1->2->6->3->4->5-...
摘要:題目描述刪除鏈表中等于給定值的所有節(jié)點(diǎn)。示例輸入輸出非遞歸解法思路遍歷鏈表,找出每個(gè)待刪除節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)。特殊情況第一個(gè)節(jié)點(diǎn)就是待刪除節(jié)點(diǎn)時(shí),要單獨(dú)操作。注意點(diǎn)當(dāng)輸入為時(shí),按上面的思路刪除第一個(gè)節(jié)點(diǎn),剩下的鏈表的頭節(jié)點(diǎn)又是待刪除節(jié)點(diǎn)。 題目描述 刪除鏈表中等于給定值 val 的所有節(jié)點(diǎn)。 示例 輸入: 1->2->6->3->4->5->6, val = 6輸出: 1->2->3->...
摘要:以下內(nèi)容編譯自他的這篇準(zhǔn)備下次編程面試前你應(yīng)該知道的數(shù)據(jù)結(jié)構(gòu)瑞典計(jì)算機(jī)科學(xué)家在年寫了一本書,叫作算法數(shù)據(jù)結(jié)構(gòu)程序。 國外 IT 教育學(xué)院 Educative.io 創(chuàng)始人 Fahim ul Haq 寫過一篇過萬贊的文章《The top data structures you should know for your next coding interview》,總結(jié)了程序員面試中需要掌...
閱讀 4270·2021-09-26 10:11
閱讀 2666·2021-07-28 00:37
閱讀 3223·2019-08-29 15:29
閱讀 1178·2019-08-29 15:23
閱讀 3124·2019-08-26 18:37
閱讀 2468·2019-08-26 10:37
閱讀 597·2019-08-23 17:04
閱讀 2347·2019-08-23 13:44