劳务外包
LeetCode之删除链表的倒数第 N 个结点
发布日期:2022-08-07 05:30    点击次数:194
  前言

我们社区接连会将顾毅(Netflix 促成黑客,《iOS 笔试之道》作者,ACE 职业健身教练。微博:@故胤道长[1])的 Swift 算法题题解摒挡为文字版以方便巨匠深造与浏览。

LeetCode 算法到而今我们已经更新了 18 期,我们会对立更新时光和进度(周1、周3、周五早上 9:00 宣布),每期的内容不多,我们停留巨匠可以或许在下班路上浏览,长久累积会有很大提升。

不积跬步,无甚至千里;不积小流,无以成江海,Swift社区 伴你前行。

难度水平:中等

1. 形貌

给你一个链表,删除链表的倒数第 n 个结点,并且前去链表的头结点。

2. 示例

示例 1

输入:head = [1,2,3,劳务外包4,5], n = 2 输出:[1,2,3,5] 

示例 2

输入:head = [1], n = 1 输出:[] 

示例 3

输入:head = [1,2], n = 1 输出:[1] 

解放条件:

链表中结点的数目为 sz 1 <= sz <= 30 0 <= Node.val <= 100 1 <= n <= sz 3. 答案
class RemoveNthFromEnd {     func removeNthFromEnd(_ head: ListNode?, _ n: Int) -> ListNode? {         let du妹妹y = ListNode(0)         du妹妹y.next = head         var prev: ListNode? = du妹妹y         var post: ListNode? = du妹妹y                  // move post         for _ in 0..<n {             post = post!.next         }                  // move prev and post at the same time         while post!.next != nil {             prev = prev!.next             post = post!.next         }                  prev!.next = prev!.next!.next                  return du妹妹y.next     } } 

次要思想:静止员技能 时光宏壮度:O(n) 空间宏壮度:O(1)

该算法题解的货仓旅馆:LeetCode-Swift[2]

点击前去 LeetCode[3] 实习

对付我们Swift社区是由 Swift 喜爱者怪异回护的公益构造,我们在国内以微信群众号的规画为主,我们会分享以 Swift实战、SwiftUl、Swift底子为焦点的技能内容,也摒挡采集优异的深造材料。

参考材料

[1] @故胤道长:

https://m.weibo.cn/u/1827884772

[2] LeetCode-Swift:

https://github.com/soapyigu/LeetCode-Swift

[3] LeetCode:

https://leetcode.com/problems/remove-nth-node-from-end-of-list/