首页 > 编程语言 >19. Remove Nth Node From End of List[Medium]

19. Remove Nth Node From End of List[Medium]

时间:2023-01-31 14:12:12浏览次数:41  
标签:Node head Medium End temp next record ListNode 节点

19. Remove Nth Node From End of List

Given the head of a linked list, remove the nth node from the end of the list and return its head.

Constraints:

  • The number of nodes in the list is sz.
  • 1 <= sz <= 30
  • 0 <= Node.val <= 100
  • 1 <= n <= sz

Example
image

Input: head = [1,2,3,4,5], n = 2
Output: [1,2,3,5]

题解

    public ListNode removeNthFromEnd(ListNode head, int n) {
        ListNode temp, result, record;
        // 待偏移节点
        temp = head;
        // 初始节点
        record = result = new ListNode(0, head);
        /**
         * 偏移量问题,要尾部第N个节点,可以先从头部偏移N个节点,然后在拿原始节点和其一起偏移,结束时原始节点应该还剩下N个节点
         * N = 1
         * 1->2->3->4   ->    2->3->4
         *
         * 1->2->3->4
         * 2->3->4
         *
         * 一起偏移后原始节点还剩个4,这也正是需要删除的节点,但此时并不知道他前一个节点是什么,所以用一个初始节点来做头节点
         *
         * 4
         */
        for (int i = 0; i < n; i++) {
            temp = temp.next;
        }

        while (temp != null) {
            temp = temp.next;
            record = record.next;
        }

        // 移除待删除元素
        record.next = record.next.next;

        // 初始节点是自定义的,要从初始节点下一位开始
        return result.next;

标签:Node,head,Medium,End,temp,next,record,ListNode,节点
From: https://www.cnblogs.com/tanhaoo/p/17077032.html

相关文章

  • nodeJS 版本控制 nvm
    nvm:https://github.com/nvm-sh/nvmnvm-windows:https://github.com/coreybutler/nvm-windows在我们的日常开发中经常会遇到这种情况:手上有好几个项目,每个项目的需求......
  • python3 获取国内上一个交易日 依赖chinese_calendar
    #获取国内上一个交易日defgetLastTradingday():#依赖库chinese_calendar,datetimedayStep=1lastTradingday=datetime.datetime.now()-datetime.......
  • centOs中使用nvm安装nodejs
    1.curl-o-https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh|bash2.修改虚拟机hostgithub3.虚拟机根目录下面建一个workspace,将node安装到目录下(......
  • 混合模式Blend
    遇到的问题1) Camera直接输出画面时,混合效果和混合公式对不上底图Quad_Bg是蓝色(0,0,1,1),混合图Quad_Src是红色(1,0,0,0.5),混合模式为BlendDstColorZero,OneZ......
  • 基于Java+SpringBoot+vue+node.js实现自行车租赁平台管理系统
    基于Java+SpringBoot+vue+node.js实现自行车租赁平台管理系统文章目录​​基于Java+SpringBoot+vue+node.js实现自行车租赁平台管理系统​​​​前言介绍:​​​​功能设计:​......
  • 使用Blender导出多个动画的GLTF模型
    准备工作:安装Blender准备好多套fbx格式的模型动画首先,加载进来模型。加载图片,将模型名称和动画名称都修改成相应的动作名称点击左下角按钮,切换到非线性动画在列表内会发现......
  • node webkit使用默认浏览器打开连接
    我们使用nw进行软件开发,有时候需要打开连接,但是正常情况下,nw会默认使用nw打开连接,而我们需要使用默认的浏览器打开,具体流程:首先,引入nw的模块letgui=require('nw.gui');......
  • npm ERR! ERESOLVE unable to resolve dependency tree 问题解决
    阅读原文-问题解决与原因分析安装命令增加--legacy-peer-deps修饰npminstall--legacy-peer-deps......
  • nodejs 安装多版本 版本切换
    版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/qq_40127119/article/details/128450398————......
  • 9.2 SQL Server BEGIN END
    BEGINEND目录BEGINEND简介嵌套BEGIN...END简介BEGIN…END语句用于定义语句块。语句块由一组一起执行的SQL语句组成。语句块也称为批处理。打个比方说,如果语句是句子......