当前位置: 首页 > ai >正文

力扣 hot100 Day32

19. 删除链表的倒数第 N 个结点

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

//自己写的
class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode* cur = head;int len=0;while(cur!=nullptr) {len++;cur = cur->next;}int tmp=0;if(tmp==len-n) {head = head->next;}cur=head;while(cur!=nullptr) {tmp++;if(tmp==len-n) {cur->next=cur->next->next;}cur = cur->next;}return head;        }
};

这里先遍历记录长度,然后找到倒数第n位进行删除

//抄的
class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode* dummy = new ListNode(0); // 虚拟头节点dummy->next = head;ListNode* fast = dummy;ListNode* slow = dummy;for (int i = 0; i <= n; i++) { // fast 先走 n+1 步fast = fast->next;}while (fast != nullptr) { // fast 和 slow 一起走fast = fast->next;slow = slow->next;}ListNode* toDelete = slow->next;slow->next = slow->next->next;delete toDelete;ListNode* newHead = dummy->next;delete dummy; // 释放虚拟头节点return newHead;}
};

居然没想到,双指针,快指针领先n步,即可找到倒数n位节点。

其实和上面也差不多,都是一个指针走到头,一个指针走到倒数第n位,但是并行处理了,只需一次遍历,效率更高。

http://www.xdnf.cn/news/14749.html

相关文章:

  • 毫米波雷达 – 深度学习
  • 腾讯 iOA 零信任产品:安全远程访问的革新者
  • 【仿muduo库实现并发服务器】Channel模块
  • Wireshark TS | 诡异的光猫网络问题
  • rocketmq 之 阿里云转本地部署实践总结
  • MySQL MVCC 详解
  • Linux基本命令篇 —— grep命令
  • jQuery UI 安装使用教程
  • 设置linux静态IP
  • 苹果AR/VR头显路线图曝光,微美全息推进AI/AR智能眼镜新品开启视觉体验篇章
  • 《UE5_C++多人TPS完整教程》学习笔记40 ——《P41 装备(武器)姿势(Equipped Pose)》
  • 为什么js是单线程?
  • 应用场景全解析:飞算 JavaAI 的实战舞台
  • 使用vue开发浏览器chrome插件教程,及之间的消息通信
  • Rust征服字节跳动:高并发服务器实战
  • HarmonyOS应用开发高级认证知识点梳理 (三)状态管理V2装饰器核心规则
  • 端到端 pluto 之数据预处理
  • js代码09
  • 飞算JavaAI—AI编程助手 | 编程领域的‘高科技指南针’,精准导航开发!
  • 边缘人工智能与医疗AI融合发展路径:技术融合与应用前景(下)
  • 计算机网络第一章——计算机网络体系结构
  • PHP安装使用教程
  • 华为云Flexus+DeepSeek征文|​​华为云ModelArts Studio大模型 + WPS:AI智能PPT生成解决方案​
  • 设计模式-观察者模式(发布订阅模式)
  • 如何让宿主机完全看不到Wi-Fi?虚拟机独立联网隐匿上网实战!
  • 百度文心大模型4.5系列正式开源,开源会给百度带来什么?
  • 华为云Flexus+DeepSeek征文 | ​​华为云ModelArts Studio大模型与企业AI会议纪要场景的对接方案
  • 深度学习04 卷积神经网络CNN
  • Spring 依赖注入:官方推荐方式及最佳实践
  • 2025年6月个人工作生活总结