首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java链表删除节点操作

只要输入要删除学生的成绩,就可以遍历该链表,并清除学生的节点, * 要结束输入时,输入“-1”,则此时会列出该链表删除的所有学生数据。...,删除节点方法 /** * 程序目的:定义头结点和尾结点的节点指针,以及建链表方法和删除节点方法 * @author 86176 * */ public class StuLinkedList...public void delete(Node delNode) { Node newNode; Node tmp; // 删除链表的第一个节点,只需要把链表首指针指向第二个节点即可...,清除节点,结束输入时输入-1 import java.io.*; import java.util.*; /** * 程序目的:利用链表建立、删除和打印学生成绩 * * @author 86176...[1][78] [4][77] [7][67] [10][75] 输入要删除成绩的学号,结束输入-1 1 删除后成绩链表,请注意!

1.1K10
您找到你想要的搜索结果了吗?
是的
没有找到

java——删除链表中所有重复的结点

思路分析 1.创建一个单链表,如图所示: 具体单链表的实现请参考本博客中文章,下面提供创建单链表的实现代码 主函数部分: 2.寻找并去除 重复的结点 先定义一个引用cur...,当链表不为空、不能发生空指针异常,且cur.next.data 等于cur.data的时候,让cur往后走一步,直到不相等的时候,将结点连接到新建节点node后,此时删除重复节点之后的链表就是所得到的值...下面是这一部分的代码 3.将最后一个结点置为空 走到链表的末尾,需要将tmp引用的下一个节点置为空,此时返回链表才不会出错; **注:**最后返回值应为 node.next(因为不确定this.head...是否为重复的需要删除的结点) 下面是代码: 完整代码

42220

leetcode链表删除链表的节点

序 本文主要记录一下leetcode链表删除链表的节点 题目 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。...注意:此题对比原题有改动 示例 1: 输入: head = [4,5,1,9], val = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为...示例 2: 输入: head = [4,5,1,9], val = 1 输出: [4,5,9] 解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 ->...说明: 题目保证链表中节点的值互不相同 若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点 来源:力扣(LeetCode) 链接:https://leetcode-cn.com...preNode.next = preNode.next.next; return head; } } 小结 这里的关键在于要设计一个preNode指针维护前一个节点,好进行删除操作

60920

leetcode链表删除链表的节点

序 本文主要记录一下leetcode链表删除链表的节点 OIP (45).jpeg 题目 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 ​...返回删除后的链表的头节点。 ​...注意:此题对比原题有改动 ​ 示例 1: ​ 输入: head = [4,5,1,9], val = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为...示例 2: ​ 输入: head = [4,5,1,9], val = 1 输出: [4,5,9] 解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 ->...说明: ​ 题目保证链表中节点的值互不相同 若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点 ​ 来源:力扣(LeetCode) 链接:https://leetcode-cn.com

52100

O(1)的时间复杂度删除链表节点

思路分析 在单向链表中,要想删除一个节点,首先想到的做法就是:从链表的头节点开始,按照顺序遍历查找要删除的节点,找到后改变指针指向即可完成节点删除。...遍历链表删除节点 接下来,我们举个链表的例子,删除 节点10 ,那么删除过程就如下图所示: 从链表头部通过遍历的方式顺着指针进行查找 发现节点9的指针指向节点10(需要删除的节点) 获取节点10指针指向的节点...但是还有一个问题:如果要删除的节点位于链表的尾部,那么它就没有下一个节点,此时我们就不能用这个办法了,只能顺序遍历得到该节点的前序节点,并完成删除操作。...如果链表中只有一个节点,而我们又要删除链表的头节点(也是尾节点),那么,此时我们在删除节点之后还需要把链表的头节点设置为null。...实现代码 有了思路之后,我们就能愉快的写出代码了,如下所示: 链表中只有1个节点时,直接返回nul,调用者删除链表的头部节点即可 待删除节点无下一个节点时,则按序遍历寻找到其上一个节点,将指针指向null

66430

动画:删除链表的节点

返回删除后的链表的头节点。...说明: 题目保证链表中节点的值互不相同 若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点 二、题目解析 我们依旧 四步分析法 进行结构化的分析。...删除链表的节点.005 2、规律 链表删除操作一般都是使用双指针。 3、匹配 双指针。 4、边界 删除的节点是头节点 三、动画描述 四、图片描述 面试题18. 删除链表的节点.002 面试题18....删除链表的节点.003 面试题18. 删除链表的节点.004 面试题18. 删除链表的节点.005 面试题18. 删除链表的节点.006 面试题18. 删除链表的节点.007 面试题18....七、相关标签 链表 双指针 以上就是本期全部内容,你学会了么?我是帅吴,一个动画刷题的程序员,下期见! 前不久我加了一个群,里面有帅张、帅地、帅北,他们觉得我长得也挺帅的

1.1K40

删除链表中的节点

题目描述 难度级别:简单 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。...现有一个链表 -- head = [4,5,1,9],它可以表示为: 示例 1: 输入:head = [4,5,1,9], node = 5 输出:[4,1,9] 解释:给定你链表中值为 5 的第二个节点...提示: 链表至少包含两个节点。 链表中所有节点的值都是唯一的。 给定的节点为非末尾节点并且一定是链表中的一个有效节点。 不要从你的函数中返回任何结果。...解题思路 题目中待传递给当前函数的实参node,它是链表中的某一个待删除的节点,然后从链表删除这个节点。...这里因为待传入的实参没有完整的链表,所以无法获取到之前节点,所以无法修改前一个节点的next指向。这时需要的是将要删除节点的值替换为它的下一个节点的值,之后要删除这个节点的next指向为下下一项。

2.4K00

链表问题】删除链表的中间节点

【题目描述】 给定链表的头节点head,实现删除链表的中间节点的函数。   ...例如:   步删除任何节点;   1->2,删除节点1;   1->2->3,删除节点2;   1->2->3->4,删除节点2;   1->2->3->4-5,删除节点3; 【要求】 如果链表的长度为...N, 时间复杂度达到 O(N), 额外空间复杂度达到 O(1) 【难度】 士:★☆☆☆ 【解答】 这道题要求删除中间节点,我们可以采用双指针的方法来做,就是一个快指针和一个慢指针,快指针每次前进两个节点...slow.next = slow.next.next; return head; } 上次那道删除倒数第 K 个节点的题(【链表问题】删除链表中的第K个节点) 其实也是可以使用双指针的...问题拓展 题目:删除链表中 a / b 处的节点 【题目描述】   给定链表的头节点 head、整数 a 和 b,实现删除位于 a/b 处节点的函数。

81540

3.5链表----链表中元素的删除(只删除一个元素情况)

该部分与上一节是息息相关的,关于如何在链表删除元素,我们一步一步来分析: 一、图示删除逻辑 假设我们需要在链表删除索引为2位置的元素,此时链表结构为: 若要删除索引为2位置的元素,需要获取索引为2...3.删除操作 第一步:将prev的next指向delNode的next,如图: 代码为: prev.next=delNode.next;  第二步:为了java能够回收这个被删除的空间,我们手动让需要被删除的节点从链表中脱离开来...代码为: delNode.next=null; 二、代码实现删除逻辑 2.1 从链表删除第index(0-based)个位置的元素 ,返回删除的元素 首先,初始化当前前置节点指向虚拟头结点,然后遍历寻找到需要被删除节点的前置节点...remove(0); } 2.3 从链表删除最后一个元素,返回删除的元素 基于remove(int index)方法实现该方法: //从链表删除最后一个元素,返回删除的元素 public...故时间复杂度为O(n); (2)删除链表的第一个元素(removeFirst()),时间复杂度为O(1) (3)删除链表中任意位置节点(remove(index)),平均情况下时间复杂度为O(n/2)=

84620
领券