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

C++速通LeetCode中等第18题-删除链表的倒数第N个结点(最简单含注释)

 绝妙!快慢指针法,快指针先走n步(复杂度O(n),O(1)):

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {//设定快慢指针,速度都是1,但是快指针先走n步,慢指针再同时出发,这样一来快指针到结尾时,慢指针到达指定位置ListNode* fast = head;ListNode* slow = head;for(int i = 0; i < n; i++) fast = fast->next;if(!fast) return head->next;//n=节点数时,不用移动了,特殊情况直接返回头节点的下一个while(fast && fast->next){fast = fast->next;slow = slow->next;}//循环结束的slow就是答案要求的起始位置if(!slow->next) return nullptr;slow->next = slow->next->next;return head;}
};


http://www.mrgr.cn/news/33311.html

相关文章:

  • zynq中断
  • git仓库服务器端损坏如何用本地code重新部署
  • 一次使用threading.Thread来实现Pytorch多个模型并发运行的失败案例
  • 罗德岛战记游戏源码(客户端+服务端+数据库+全套源码)游戏大小9.41G
  • 探秘 Web Bluetooth API:连接蓝牙设备的新利器
  • openEuler系统安装内网穿透工具实现其他设备公网环境远程ssh连接
  • GS-SLAM论文阅读笔记--TAMBRIDGE
  • Redis数据结构之list列表
  • 一款前后端分离CRM客户关系管理系统,支持客户,商机,线索,合同,发票,审核,商品等功能(附源码)
  • 基于redis的HyperLogLog数据结构实现的布隆过滤器在信息流中历史数据的应用
  • html 几行的空间分成3个区域
  • 【机器学习】--- 决策树与随机森林
  • Cisco 基础网络汇总
  • django+vue
  • MySQL高阶1917-Leetcodify好友推荐
  • [图解]静态关系和动态关系
  • 使用GPU 加速 Polars:高效解决大规模数据问题
  • js之遍历方法
  • 【多模态大模型】Qwen2-VL基本原理和推理部署实战
  • 为什么 AVIF 将成为下一代图片格式之王