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

LeetCode[19]删除链表的倒数第N个节点

思路:

要想一次循环,一趟遍历完,那肯定是要想到双指针了,但是双指针怎么做呢?题目给出删除倒数第N个,我们如果能找到倒数第N个节点的前一个节点就行了,倒数第N个肯定是倒着数,那我们就让两个指针中间就差N个单位,当快指针走到链表最后一个的下一个null节点时,这时候慢指针就是倒数第N个节点的前一个节点了,因为快慢指针始终相差N个节点。

 代码:

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        ListNode hair = new ListNode(-1,head);
        ListNode pre = hair, cur = head;
        for(int i=0;i<n;i++){
            cur = cur.next;
        }
        while(cur!=null){
            pre = pre.next;
            cur = cur.next;
        }
        pre.next = pre.next.next;
        return hair.next;
    }
}

http://www.dtcms.com/a/75085.html

相关文章:

  • 【Go语言圣经3.1】
  • 《Python深度学习》第一讲:深度学习基础
  • uniapp APP权限弹框
  • 高级java每日一道面试题-2025年3月04日-微服务篇[Eureka篇]-Eureka是什么?
  • 卷积神经网络 - 基本概念
  • 【玩转正则表达式】Python、Go、Java正则表达式解释器的差异解析(附示例)
  • 【Mac 从 0 到 1 保姆级配置教程 08】08. 快速配置 Neovim、LazyVim 以及常用开发环境,如果之前有人这么写就好了
  • 算法刷题记录——LeetCode篇(10) [第901~1000题](持续更新)
  • MySQL:Ubuntu下安装MySQL 8.0记录
  • Maya的操作基础教学
  • Redis--渐进式遍历
  • 应急响应靶场练习-Web1
  • tensorflow与torch并行读取数据机制
  • C盘清理终极方案——基于Windows软连接的目录迁移实战
  • ESP32-H2芯片模组方案,设备物联网通信,智能化无线控制联动
  • LabVIEW压比调节器动态试验台
  • [Linux]从零开始的泰山派运行yolov8教程
  • 保姆级离线TiDB V8+解释
  • linux 命令 mv
  • MYSQL8.0数据库误删除记录恢复 MYSQL8.0数据库崩溃恢复 MYSQL8.0数据库删除表恢复
  • OpenCV计算摄影学(20)非真实感渲染之增强图像的细节函数detailEnhance()
  • MATLAB 控制系统设计与仿真 - 27
  • 光谱相机识别瓶子材质的技术原理和应用案例
  • JS超过Number的最大值
  • 如何启用 HTTPS 并配置免费的 SSL 证书
  • hubilder打包ios app, 并上传TestFlight
  • c语言笔记 字符串函数---strstr strlen strtok以及sizeof
  • 1.5.3 掌握Scala内建控制结构 - for循环
  • 告别数据库束缚!用esProc在 csv 文件上执行 SQL
  • 搭建主从服务器