摘要:題目描述給定一個(gè)鏈表,刪除鏈表的倒數(shù)第個(gè)節(jié)點(diǎn),并且返回鏈表的頭結(jié)點(diǎn)。示例給定一個(gè)鏈表和當(dāng)刪除了倒數(shù)第二個(gè)節(jié)點(diǎn)后,鏈表變?yōu)楹?jiǎn)單的思路用一個(gè)數(shù)組保存所有的鏈表節(jié)點(diǎn),遍歷完之后可以知道倒數(shù)第個(gè)鏈表節(jié)點(diǎn)。
題目描述
給定一個(gè)鏈表,刪除鏈表的倒數(shù)第 n 個(gè)節(jié)點(diǎn),并且返回鏈表的頭結(jié)點(diǎn)。
示例:
給定一個(gè)鏈表: 1->2->3->4->5, 和 n = 2.簡(jiǎn)單的思路
當(dāng)刪除了倒數(shù)第二個(gè)節(jié)點(diǎn)后,鏈表變?yōu)?1->2->3->5.
用一個(gè)數(shù)組保存所有的鏈表節(jié)點(diǎn),遍歷完之后可以知道倒數(shù)第 n 個(gè)鏈表節(jié)點(diǎn)。
時(shí)間復(fù)雜度 為 O(k),空間復(fù)雜度 為 O(k),這里 k 為鏈表長(zhǎng)度。
使用兩個(gè)指針,快指針先遍歷 n 個(gè)節(jié)點(diǎn),之后兩個(gè)指針再一起遍歷,等到快指針遍歷結(jié)束后,慢指針指向的當(dāng)前節(jié)點(diǎn)就是倒數(shù)第 n 個(gè)節(jié)點(diǎn)。
時(shí)間復(fù)雜度 為 O(k),空間復(fù)雜度 為 O(1),這里 k 為鏈表長(zhǎng)度。
??注意:為了寫代碼方便,我們可以在鏈表頭節(jié)點(diǎn)前加多一個(gè)節(jié)點(diǎn)。
示例代碼:/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */ /** * @param {ListNode} head * @param {number} n * @return {ListNode} */ var removeNthFromEnd = function(head, n) { let temp = { next: head } temp.next = head let p = q = temp for (let i = 0; i <= n; i++) { p = p.next } while(p) { p = p.next q = q.next } q.next = q.next.next return temp.next };
原題地址: https://leetcode-cn.com/probl...
代碼不定時(shí)更新,歡迎 star 我的 repo
掃描下方的二維碼或搜索「tony老師的前端補(bǔ)習(xí)班」關(guān)注我的微信公眾號(hào),那么就可以第一時(shí)間收到我的最新文章。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/106047.html
摘要:示例輸入輸出示例輸入輸出示例輸入輸出提示雙指針法分析根據(jù)題干的要求,我們需要?jiǎng)h除倒數(shù)第個(gè)節(jié)點(diǎn),在返回頭結(jié)點(diǎn)。只需要找到倒數(shù)第個(gè)節(jié)點(diǎn),將其刪除,再返回。 ?作者簡(jiǎn)...
摘要:給定一個(gè)鏈表,刪除鏈表的倒數(shù)第個(gè)節(jié)點(diǎn),并且返回鏈表的頭結(jié)點(diǎn)。示例給定一個(gè)鏈表和當(dāng)刪除了倒數(shù)第二個(gè)節(jié)點(diǎn)后,鏈表變?yōu)檎f明給定的保證是有效的。值得注意的的是,指向應(yīng)當(dāng)刪除的節(jié)點(diǎn)并無法刪除它,應(yīng)當(dāng)指向該刪除節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)。 給定一個(gè)鏈表,刪除鏈表的倒數(shù)第 n 個(gè)節(jié)點(diǎn),并且返回鏈表的頭結(jié)點(diǎn)。 Given a linked list, remove the n-th node from the ...
摘要:給定一個(gè)鏈表,刪除鏈表的倒數(shù)第個(gè)節(jié)點(diǎn),并且返回鏈表的頭結(jié)點(diǎn)。示例給定一個(gè)鏈表和當(dāng)刪除了倒數(shù)第二個(gè)節(jié)點(diǎn)后,鏈表變?yōu)檎f明給定的保證是有效的。值得注意的的是,指向應(yīng)當(dāng)刪除的節(jié)點(diǎn)并無法刪除它,應(yīng)當(dāng)指向該刪除節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)。 給定一個(gè)鏈表,刪除鏈表的倒數(shù)第 n 個(gè)節(jié)點(diǎn),并且返回鏈表的頭結(jié)點(diǎn)。 Given a linked list, remove the n-th node from the ...
摘要:題目描述給定一個(gè)鏈表,刪除鏈表的倒數(shù)第個(gè)節(jié)點(diǎn),并且返回鏈表的頭結(jié)點(diǎn)。示例給定一個(gè)鏈表和當(dāng)刪除了倒數(shù)第二個(gè)節(jié)點(diǎn)后,鏈表變?yōu)檎f明給定的保證是有效的。 題目描述 給定一個(gè)鏈表,刪除鏈表的倒數(shù)第 n 個(gè)節(jié)點(diǎn),并且返回鏈表的頭結(jié)點(diǎn)。 示例: 給定一個(gè)鏈表: 1->2->3->4->5, 和 n = 2. 當(dāng)刪除了倒數(shù)第二個(gè)節(jié)點(diǎn)后,鏈表變?yōu)?1->2->3->5. 說明: 給定的 n 保證是有效...
摘要:既然說到地址空間了就順帶說一下上面環(huán)形鏈表這道題的另一種很的解法吧。介紹完常規(guī)操作鏈表的一些基本知識(shí)點(diǎn)后,現(xiàn)在回到快慢指針。 ??前幾天第一次在 Segmentfault 發(fā)文—JavaScript:十大排序的算法思路和代碼實(shí)現(xiàn),發(fā)現(xiàn)大家似乎挺喜歡算法的,所以今天再分享一篇前兩個(gè)星期寫的 Leetcode 刷題總結(jié),希望對(duì)大家能有所幫助。 ??本文首發(fā)于我的blog 前言 ??今天終于...
閱讀 2682·2021-11-16 11:53
閱讀 2744·2021-07-26 23:38
閱讀 2077·2019-08-30 15:55
閱讀 1758·2019-08-30 13:21
閱讀 3671·2019-08-29 17:26
閱讀 3313·2019-08-29 13:20
閱讀 881·2019-08-29 12:20
閱讀 3199·2019-08-26 10:21