leetcode-链表算法题

leetcode-链表算法题

237.删除链表中的节点 题目地址

有一个单链表的 head,我们想删除它其中的一个节点 node。 给你一个需要删除的节点 node 。你将 无法访问 第一个节点 head。
链表的所有值都是 唯一的,并且保证给定的节点 node 不是链表中的最后一个节点。
删除给定的节点。注意,删除节点并不是指从内存中删除它。这里的意思是:

给定节点的值不应该存在于链表中。
链表中的节点数应该减少 1。 node 前面的所有值顺序相同。 node 后面的所有值顺序相同。

自定义测试:
对于输入,你应该提供整个链表 head 和要给出的节点 node。node 不应该是链表的最后一个节点,而应该是链表中的一个实际节点。
我们将构建链表,并将节点传递给你的函数。 输出将是调用你函数后的整个链表。

示例 1:
输入:head = [4,5,1,9], node = 5
输出:[4,1,9]
解释:指定链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9

在这里插入图片描述


题目解析

- 这是一个单链表- 输入的节点Node是要删除的,Node不是最后一个节点

解题思路

【4】-> 【5】-> 【1】-> 【9】  {5}
根据链表的性质 : 可以知道【5】以后的元素,因此可以这样操作:
把{5}的val改为{1} :【5】 = 【1】
把{5}.next改为{1}.next

在这里插入图片描述

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
class Solution {public void deleteNode(ListNode node) {node.val = node.next.val;node.next = node.next.next;}
}

19.删除链表的倒数第 N 个结点 题目地址

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

在这里插入图片描述

示例 1:
输入:head = [1,2,3,4,5], n = 2
输出:[1,2,3,5]

题目解析

- 这是一个单链表- 目的: 删除链表的倒数第 N 个结点- 需求: 链表长度- 需求: 第n个节点- 目的: 返回链表的头结点 	- 存储链表 - 注解 : ListNode(int val, ListNode next) { this.val = val; this.next = next; }

解题思路

【1】获取链表长度
【2】存储链表,在头节点处添加一个元素,可以防止如:【1】 , {1}.next  = {1}.next.next  出现null的情况
【3】找到第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) {int len = getLength(head); ListNode du = new ListNode(0,head);ListNode cur = du;for(int i = 0; i < len-n ; i++){cur = cur.next;}cur.next = cur.next.next;return du.next;}public int getLength(ListNode head) {int length = 0;while (head != null) {++length;head = head.next;}return length;}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用 WebView 将 React Native 嵌入到原生应用中

创建 React Native Web Bundle&#xff1a; 首先&#xff0c;需要使用 React Native CLI 或 Expo CLI 构建 React Native 的 Web bundle。你可以使用以下命令来构建 Web bundle&#xff1a; npx react-native bundle --platform web --entry-file index.js --bundle-output ./…

有趣且重要的JS知识合集(21)浏览器内置对象讲解之Dom篇

1、Dom 1.1、概念 Document Object Model&#xff08;文档对象模型&#xff09;, 整个WEB页面, 所有的Dom元素都在Document整个文档里。DOM就是把整个文档页面当做一个对象进行操作, document 下 包含了 根据 html 创建 的 Dom 对象, 这个DOM对象, 以树形结构展示, 即DOM树 …

20240322-2-Catboost面试题

Catboost面试题 1. 简单介绍Catboost&#xff1f; CatBoost是一种以对称决策树 为基学习器的GBDT框架&#xff0c;主要为例合理地处理类别型特征&#xff0c;CatBoost是由Categorical和Boosting组成。CatBoost还解决了梯度偏差以及预测偏移的问题&#xff0c;从而减少过拟合的…

C 传递指针给函数

C 语言允许您传递指针给函数&#xff0c;只需要简单地声明函数参数为指针类型即可。 下面的实例中&#xff0c;我们传递一个无符号的 long 型指针给函数&#xff0c;并在函数内改变这个值&#xff1a; #include <stdio.h> #include <time.h>void getSeconds(unsi…

12.填充

12.填充 - 蓝桥云课 (lanqiao.cn) 问题描述 有一个长度为n的01串&#xff0c;其中有一些位置标记为 ?&#xff0c;这些位置上可以任意填充0或者1&#xff0c;请问如何填充这些位置使得这个01串中出现互不重叠的00和11子串最多&#xff0c;输出子串个数 输入格式 输入一行包含一…

element plus的el-image图片发布到nginx不显示

问题&#xff1a; <el-image alt""src"/img/month-b.png" class"card-icon"style"width: 89px;height: 89px;right: -7px;top: -5px;"/> 部署到nginx二级路由访问地址是&#xff1a; http://192.168.1.207/divided/# 这时候使用…

EasyExcel: 高效处理Excel的现代Java库

引言 在现代数据处理中&#xff0c;Excel表格无疑是一种不可或缺的工具。它不仅用于数据的存储和整理&#xff0c;更是在各个领域中广泛应用的数据分析和展示工具。然而&#xff0c;对于Java开发者而言&#xff0c;在处理Excel文件时常常会遇到一些棘手的问题。 传统的Java操…

使用node爬取视频网站里《龙珠》m3u8视频

1. 找到视频播放网站 百度一下 龙珠视频播放 精挑细选一个可以播放的网站。 如&#xff1a;我在网上随便找了一个播放网站&#xff0c;可以直接在线播放 https://www.xxx.com/play/39999-1-7.html 这里不具体写视频地址了&#xff0c;大家可以自行搜索 2.分析网页DOM结…

【面试经典150 | 动态规划】三角形最小路径和

文章目录 写在前面Tag题目来源解题思路方法一&#xff1a;动态规划 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的数据结构等内容进行…

使用pytorch构建带梯度惩罚的Wasserstein GAN(WGAN-GP)网络模型

本文为此系列的第三篇WGAN-GP&#xff0c;上一篇为DCGAN。文中仍然不会过多详细的讲解之前写过的&#xff0c;只会写WGAN-GP相对于之前版本的改进点&#xff0c;若有不懂的可以重点看第一篇比较详细。 原理 具有梯度惩罚的 Wasserstein GAN (WGAN-GP)可以解决 GAN 的一些稳定性…

十四、Spring源码学习之createBean方法

AbstractAutowireCapableBeanFactory#createBean()方法 protected Object createBean(String beanName, RootBeanDefinition mbd, Nullable Object[] args)throws BeanCreationException {if (logger.isTraceEnabled()) {logger.trace("Creating instance of bean "…

【unity】认识unity Hub的主要功能

这里我们主要讲解unity Hub中的【项目】和【安装】功能&#xff0c;其他对应的功能栏相信大家根据文字就可以知道相应的作用。 首先是介绍【项目】功能&#xff0c;在这里我们可以创建本地项目和云端项目&#xff0c;作为初学者我们创建本地项目皆可&#xff0c;当然如果你是多…

UE4_碰撞_使用蓝图控制物体移动时如何让被阻挡

当我们这样设置蓝图时&#xff1a; 运行效果&#xff1a; 利用蓝图更改一个物体的位置&#xff0c;发现本来两个应该相互阻挡的物体被穿过去了。为了不让相互阻挡的物体被穿过去&#xff0c;我们需要设置好蓝图节点的参数Sweep。 勾选之后 墙的蓝图我们这样设置&#xff1a; 运…

C#-ConcurrentDictionary用于多线程并发字典

ConcurrentDictionary 是 .NET Framework 中用于多线程并发操作的一种线程安全的字典集合类。它提供了一种在多个线程同时访问和修改字典时保持数据一致性的机制。 以下是 ConcurrentDictionary 类的一些重要特性和用法&#xff1a; 线程安全性&#xff1a;ConcurrentDictiona…

【软件工程】需求分析

1. 导言 1.1. 需求文档的目的 该文档是关于用户对于“学生成绩管理系统”的功能和性能的要求&#xff0c;重点描述了“学生成绩管理系统”的设计需求&#xff0c;将作为对该工具在概要设计阶段的设计输入。编写本文档的目的在于说明软件工程管理系统的业务需求内容&#xff0…

30-3 越权漏洞 - 水平越权(横向越权)

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、定义 攻击者可以访问和操作与其拥有同级权限的用户资源。 示例: 学生A在教务系统上正常只能修改自己的作业内容,但由于不合理的权限校验规则等原因,学生A可以修改学生B的内…

点云从入门到精通技术详解100篇-基于3D点云的盘类元件识别与定位

目录 前言 2 3D视觉机器人抓取系统方案设计 2.1 系统硬件方案选型 2.1.1 相机选取方案

记录C++中,vector的迭代器在push_back以后扩容导致迭代器失效的问题

前言 vector是我们用到最多的数据结构&#xff0c;其底层数据结构是单端动态数组&#xff0c;由于数组的特点&#xff0c;vector也具有以下特性&#xff1a; ①O(1)时间的快速访问&#xff1b; ②顺序存储&#xff0c;所以插入到非尾结点位置所需时间复杂度为O(n)&#xff0c;删…

动态规划--(递推2(最长上升子序列,格子染色,斐波那切数列,奇数塔问题,最长子段和))

1281&#xff1a;最长上升子序列 【题目描述】 一个数的序列bi &#xff0c;当b1<b2<…<bS 的时候&#xff0c;我们称这个序列是上升的。对于给定的一个序列(a1,a2,…,aN) &#xff0c;我们可以得到一些上升的子序列(ai1,ai2,…,aiK) &#xff0c;这里1≤i1<i2<…

uniapp开发微信小程序设置分包,简单易学

文章目录 前言一、在 manifest.json文件中的源码试图中配置二、配置pages.json 前言 我们使用uniapp开发微信小程序的时候&#xff0c;当我们的包体积过大的时候&#xff0c;无法真机模拟。 因为小程序单个包只支持2MB&#xff08;现已支持预览4MB&#xff09;&#xff0c;所以…