力扣19 链表 删除倒数N结点

目录

问题:

1.链表的组成结构

2.如何改变倒数第N个结点

2.1 求链表长度

2.2 找到倒数第N个结点前一个结点

2.3 让倒数N前一个改变即可

3.源代码示范


问题:

1.链表的组成结构

单向链表  由value + next 组成 ,value包括此结点的各基础属性,next存储下一个结点地址

curr.next 代表curr结点指向的下一个结点,为2 ;

pre.next = curr.next  代表赋值  将curr下一个结点,作为pre的下一个结点 

/** 如curr值为1 */

curr.next /** 代表curr结点指向的下一个结点,为2 */
 
curr.next.next /** curr.next指向的下一个结点,为3 */

2.如何改变倒数第N个结点

2.1 求链表长度

    public int getSize(ListNode head){
        ListNode temp = head;
        int size = 0;
        while (temp != null) {
            size++;
            //一定要好好想想,结尾是否要迭代指针
            temp = temp.next;
        }
        return size;
    }

2.2 找到倒数第N个结点前一个结点

 int sz  = getSize(head);       
        for(int i=1;i<sz-n;i++){
            curr = curr.next;
        }

2.3 让倒数N前一个改变即可

        curr.next = curr.next.next;

3.源代码示范

class ListNode{
    int val;
    ListNode next;
    ListNode(int value,ListNode next_one)
    {
        val = value;
        next = next_one;
    }
}

public class Solution {

    public ListNode removeNthFromEnd(ListNode head,int n){
        // ListNode dummy = new ListNode(0, head);
    
        ListNode curr = head;
        int sz  = getSize(head);       
        for(int i=1;i<sz-n;i++){
            curr = curr.next;
        }
        curr.next = curr.next.next;
        //end必须在链表更新后,再获取头节点值
        ListNode end = head;
        return end;
    }
    public int getSize(ListNode head){
        ListNode temp = head;
        int size = 0;
        while (temp != null) {
            size++;
            //一定要好好想想,结尾是否要迭代指针
            temp = temp.next;
        }
        return size;
    }
    public void printNistNode(ListNode head){
        ListNode curr = head;
        while (curr != null) {
            System.err.println(curr.val);
            curr = curr.next;
        }
        
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/496188.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【虹科干货】长文预警!使用ntopng和NetFlow/IPFIX检测Dos攻击(上)

为了和大家探讨网络安全领域中的关键问题&#xff0c;我将分两期来展示如何使用ntopng和NetFlow/IPFIX检测Dos攻击。在本篇中&#xff0c;我先简单介绍网络安全面临的挑战、为何网络流量分析在应对网络安全挑战中起重要作用&#xff0c;此外&#xff0c;我会介绍在此次检测中使…

【机器学习】代价函数

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;机器学习 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进…

绍兴市经信局副局长胡小君一行莅临迪捷软件调研走访

2024年3月27日下午&#xff0c;绍兴市经信局党组成员、副局长胡小君一行莅临迪捷软件调研走访。 胡局长一行实地参观了迪捷软件办公环境&#xff0c;对迪捷软件的发展历程、产品应用、未来发展计划等情况进行深入了解&#xff0c;充分倾听了迪捷软件当前遇到的困难&#xff0c;…

推动制药行业数字化转型:基于超融合架构的MES一体机解决方案

随着中国对信息化重视程度的不断加深&#xff0c;制药行业作为国民经济的重要支柱之一&#xff0c;也在积极寻求通过数字化手段提升产业效率与产品质量。自党的十六大提出“以信息化带动工业化”的战略以来&#xff0c;制药业的这一转型探索尤为迫切。 在现代制药生产中&#…

后端之卡尔曼滤波

后端之卡尔曼滤波 前言 在很久之前&#xff0c;人们刚结束信息传递只能靠信件的时代&#xff0c;通信技术蓬勃发展&#xff0c;无线通信和有线通信走进家家户户&#xff0c;而著名的贝尔实验室就在这个过程做了很多影响深远的研究。为了满足不同电路和系统对信号的需求&#…

数字化生产:探索生产管理软件在工业4.0时代的关键作用

导 读 ( 文/ 1445 ) 工业4.0时代的到来催生了数字化生产的浪潮&#xff0c;而生产管理软件在其中扮演着关键的角色。本文将探索生产管理软件在工业4.0时代的关键作用&#xff0c;从实时数据分析、智能化生产过程和协同合作等方面&#xff0c;阐述软件在实现数字化生产的转型中的…

BioXcell InVivoPlus anti-mouse Ly6G及部分参考文献

BioXcell InVivoPlus anti-mouse Ly6G 1A8单克隆抗体与小鼠Ly6G反应。Ly6G分子量为21-25kDa&#xff0c;是GPI锚定的细胞表面蛋白Ly-6超家族的成员&#xff0c;在细胞信号传导和细胞粘附中发挥作用。Ly6G在发育过程中由骨髓谱系中的细胞&#xff08;包括单核细胞、巨噬细胞、粒…

全面升级!对比SDN园区方案,云化园区方案好在哪?

SDN的概念提出已十几年&#xff0c;至今却仍不温不火&#xff0c;当下主流的SDN控制器方案集网络的部署、配置、分析为一体&#xff0c;比起传统网络更具优越性&#xff0c;却并未获得市场成功。 Gartner在2021和2023发布的《Hype Cycle for Enterprise Networking(企业网络技术…

第 6 章 ROS-Arbotix(自学二刷笔记)

重要参考&#xff1a; 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 6.5 Rviz中控制机器人模型运动 通过 URDF 结合 rviz 可以创建并显示机器人模型&#xff0c;不过&#xff0c;…

浅谈-程序员35岁面临失业风险需要注意什么?

目录 一、现状 二、原因分析 三、个人建议 四、总结 一、现状 互联网公司不愿意招收35岁以上的程序员主要是因为性价比问题。年龄大了&#xff0c;薪资要求通常较高&#xff0c;而加班时间可能较少。此外&#xff0c;互联网公司普遍认为没有35岁以上的中年人。 二、原因分析…

python数据实时传给unity工程并绘制出来

python # 服务器端代码 import socket import random import struct import time# 创建一个服务器Socket server_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 监听的地址和端口 host 127.0.0.1 port 12345# 绑定地址和端口 server_socket.bind((host, port…

鼠标不动了怎么办?鼠标不能移动解决方法

鼠标不能移动有可能是鼠标坏了&#xff0c;或者是电脑的软件和硬件有冲突等原因造成。最近有小伙伴就咨询了有关鼠标的问题&#xff0c;昨天鼠标还能使用&#xff0c;不知道为什么今天就突然不能用了。那么我们在排除鼠标坏掉了的情况下&#xff0c;试试对鼠标进行修复吧。下面…

由浅到深认识Java语言(38):I/O流

该文章Github地址&#xff1a;https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板&#xff08;Github仓库地址&#xff1a;https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址&#xff1a;https://blog.c…

寄主机显示器被快递搞坏了怎么办?怎么破?

大家好&#xff0c;我是平泽裕也。 最近&#xff0c;我在社区里看到很多关于开学后弟弟寄来的电脑显示器被快递损坏的帖子。 看到它真的让我感到难过。 如果有人的数码产品被快递损坏了&#xff0c;我会伤心很久。 那么今天就跟大家聊聊寄快递的一些小技巧。 作为一名曾经的…

iptables添加端口映射,k8s主机查询不到端口但能访问。

研究原因&#xff1a;k8s内一台主机使用命令查询没有80端口。但通过浏览器访问又能访问到服务。 查询了资料是使用了hostport方式暴露pod端口。cni调用iptables增加了DNAT规则。访问时流量先经过iptables直接被NAT到具体服务去了。 链接: K8s罪魁祸首之"HostPort劫持了我…

【2024.3.28练习】砝码称重

题目描述 题目分析 动态规划解决。建立状态&#xff0c;数组元素为0或1&#xff0c;代表只用前个砝码能否称出重量。 设个砝码重量为&#xff0c;则第状态转移方程为&#xff1a; 我的代码 #include <iostream> #include <algorithm> #include <cmath> #i…

武汉星起航:五对一服务体系,引领卖家迅速适应亚马逊市场

在数字化浪潮的推动下&#xff0c;亚马逊跨境电商行业成为了众多创业者和企业家们竞相追逐的热门领域。然而&#xff0c;对于零经验的新手卖家而言&#xff0c;这个看似充满机遇的跨境电商世界实则暗藏无数挑战和未知。在这个关键时刻&#xff0c;武汉星起航公司以其专业的服务…

环信IM集成教程---消息转发合并转发的实现

前言 在发送消息体系中&#xff0c;转发消息是一个重要的环节&#xff0c;可以单条转发也可以合并转发。本文教大家在接入环信IM过程中如何实现单条转发&#xff0c;合并转发消息功能&#xff0c;同时举例一些容易踩坑的位置&#xff0c;以便大家尽快顺利的实现转发消息功能。…

Python实现猜数字游戏:一次编程旅程

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

融合创新!全局注意力+局部注意力,训练成本直降91.6%

全局注意力结合局部注意力可以让模型在处理数据时&#xff0c;既不会丢失重要的局部细节&#xff0c;也能考虑到整个数据集中的全局结构&#xff0c;从而在保持模型计算效率的同时&#xff0c;提高模型的表达能力。 这种策略相较于传统的单一注意力机制&#xff0c;能够更全面…