当前位置:网站首页>leetcode/删除链表的倒数第n个结点
leetcode/删除链表的倒数第n个结点
2022-08-08 14:58:00 【xcrj】
代码
package com.xcrj;
/** * 剑指 Offer II 021. 删除链表的倒数第 n 个结点 * 给定一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 */
public class Solution21 {
/** * 双指针同向移动,i指向遍历的当前结点,j指向从i倒数第n个结点,当i-j=n时,j移动,最终当i指向最后1个元素是,j指向倒数第n个元素 * 往头结点之前再插入1个结点(伪头结点),可以不用单独考虑如何处理头结点 */
public ListNode removeNthFromEnd3(ListNode head, int n) {
// 构造伪头结点,往链表头之前插入了1个新的结点,可以不会单独处理倒数第n个结点是头结点的情况
ListNode dummy = new ListNode(0, head);
ListNode pi = head;
ListNode pj = dummy;
// pi先走n步
for (int i = 0; i < n; ++i) {
pi = pi.next;
}
// pi和pj同时往后走,直到pi到达尾结点,此时pj就是倒数第n个结点
while (pi != null) {
pi = pi.next;
pj = pj.next;
}
pj.next = pj.next.next;
// 伪头结点的下一个结点才是头结点
return dummy.next;
}
public static void main(String[] args) {
}
}
参考
作者:LeetCode-Solution
链接:https://leetcode.cn/problems/SLwz0R/solution/shan-chu-lian-biao-de-dao-shu-di-n-ge-ji-ydte/
来源:力扣(LeetCode)
边栏推荐
- Shell三剑客之sed命令详解
- Mx_yolov3环境配置+模型测试训练
- 从洞察到决策,一文解读标签画像体系建设方法论丨DTVision分析洞察篇
- LeetCode Daily Question 2022/8/1-2022/8/7
- JS - BOM - - can be achieved through calculation or default values
- JS-BOM-阶乘计算
- synchronized修饰类的注意事项
- Create a 2D array
- Is it safe to open an account online now?Which securities to choose for securities account opening?
- 5G NR RRC连接控制
猜你喜欢
随机推荐
loj 6038「雅礼集训 2017 Day5」远行
2022年8月中国数据库排行榜:openGauss重夺榜眼,PolarDB反超人大金仓
Redis RDB分析系统
JS加法器(DOM)
一文搞懂│XSS攻击、SQL注入、CSRF攻击、DDOS攻击、DNS劫持
万字长文:常见的软件测试面试题(附答案)
【控制】动力学建模举例 --> 牛顿-欧拉法
kali换源详细步骤
What is low-code development?Is everyone really optimistic about low-code development?
2022-08-07 The fifth group Gu Xiangquan study notes day31-collection-Map collection
PHP —— CI 框架实现微信小程序支付
Elegantly detect and update web applications in real time
Chat with wine and chat, build an asynchronous non-blocking (aioredis) real-time (websocket) communication chat system based on Vue3.0+Tornado6.1+Redis publish-subscribe (pubsub) mode
依赖传递和依赖调解
什么是发饰hair accessories?
浅谈 Redis 的底层数据结构
【系统设计】S3 对象存储
egg.js框架的基本设置 及 使用
腾讯又一长达 8 年的服务下架。。。
小程序轮播图实现由远及近动画