人类进步的阶梯
算法和数据结构
滑动窗口go模板
nSum问题解决模板
【链表问题】
21. 合并两个有序链表
23. 合并 K 个升序链表
19. 删除链表的倒数第 N 个结点
876. 链表的中间结点
141. 环形链表
redis
tx
一些QA
【Redis】
rehash
击穿、穿透、雪崩
【计算机网络】
TCP
【Mysql】
索引
资料索引
本文档使用 MrDoc 发布
-
+
首页
19. 删除链表的倒数第 N 个结点
### 题目 [删除链表的倒数第 N 个结点](https://leetcode.cn/problems/remove-nth-node-from-end-of-list/description/) ### 思路 1. 要删除倒数第N个结点,只需要找到N-1个结点 2. 一次遍历,使用**快慢指针**,快指针先走N步,再快慢一起走,快指针走到底的时候,慢指针刚好落在N-1的位置 3. 使用虚拟头结点dummy,可以方便处理空值 ### 【优化解】 ```go /** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func removeNthFromEnd(head *ListNode, n int) *ListNode { dummy := &ListNode{} dummy.Next = head s := dummy f := dummy for i := 0; i < n + 1; i ++ { f = f.Next } for f != nil { s = s.Next f = f.Next } s.Next = s.Next.Next return dummy.Next } ```
adminadmin
2024年6月18日 02:10
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码