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

2024-03-26 19:12

本文主要是介绍力扣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;}}
}

这篇关于力扣19 链表 删除倒数N结点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

shell脚本自动删除30天以前的文件(最新推荐)

《shell脚本自动删除30天以前的文件(最新推荐)》该文章介绍了如何使用Shell脚本自动删除指定目录下30天以前的文件,并通过crontab设置定时任务,此外,还提供了如何使用Shell脚本删除E... 目录shell脚本自动删除30天以前的文件linux按照日期定时删除elasticsearch索引s

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

docker如何删除悬空镜像

《docker如何删除悬空镜像》文章介绍了如何使用Docker命令删除悬空镜像,以提高服务器空间利用率,通过使用dockerimage命令结合filter和awk工具,可以过滤出没有Tag的镜像,并将... 目录docChina编程ker删除悬空镜像前言悬空镜像docker官方提供的方式自定义方式总结docker

使用Python在Excel中插入、修改、提取和删除超链接

《使用Python在Excel中插入、修改、提取和删除超链接》超链接是Excel中的常用功能,通过点击超链接可以快速跳转到外部网站、本地文件或工作表中的特定单元格,有效提升数据访问的效率和用户体验,这... 目录引言使用工具python在Excel中插入超链接Python修改Excel中的超链接Python

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

C#实现添加/替换/提取或删除Excel中的图片

《C#实现添加/替换/提取或删除Excel中的图片》在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观,下面我们来看看如何在C#中实现添加/替换/提取或删除E... 在Excandroidel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超