Java剑指offer之删除链表的节点
1.简述
描述:
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。
- 1.此题对比原题有改动
- 2.题目保证链表中节点的值互不相同
- 3.该题只会输出返回的链表和结果做对比,所以若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点
数据范围:
0<=链表节点值<=10000
0<=链表长度<=10000
示例1
输入:
{2,5,1,9},5
返回值:
{2,1,9}
说明:
给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 2 -> 1 -> 9
示例2
输入:
{2,5,1,9},1
返回值:
{2,5,9}
说明:
给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 2 -> 5 -> 9
2.代码实现
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @param val int整型 * @return ListNode类 */ public ListNode deleteNode (ListNode head, int val) { ListNode dummy = new ListNode(-1); dummy.next = head; ListNode node = dummy; while(node.next!=null){ if(node.next.val==val){ node.next = node.next.next; break; } node = node.next; } return dummy.next; } }
到此这篇关于Java剑指offer之删除链表的节点的文章就介绍到这了,更多相关Java删除链表节点内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
一个例子带你看懂Java中synchronized关键字到底怎么用
synchronized是Java里的一个关键字,起到的一个效果是"监视器锁",它的功能就是保证操作的原子性,同时禁止指令重排序和保证内存的可见性,下面这篇文章主要给大家介绍了关于如何通过一个例子带你看懂Java中synchronized关键字到底怎么用的相关资料,需要的朋友可以参考下2022-10-10解析Java中的队列和用LinkedList集合模拟队列的方法
这篇文章主要介绍了解析Java中的队列和用LinkedList集合模拟队列的方法,相关算法的实现也是ACM中的常见题目,需要的朋友可以参考下2015-08-08Mybatis使用update更新值为null时不生效问题解决
这篇文章主要介绍了Mybatis使用update更新值为null时不生效问题解决,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-06-06SpringBoot+@EnableScheduling使用定时器的常见案例
项目开发中经常需要执行一些定时任务,本文主要介绍了SpringBoot+@EnableScheduling使用定时器的常见案例,具有一定的参考价值,感兴趣的可以了解一下2023-09-09maven项目编译后没有生成target/class文件问题
文章介绍了在Maven项目中,`target/classes`目录用于存放编译后的字节码文件,如果在项目编译启动后却没有看到这个文件夹,可以通过取消勾选`javaoutputfolders`选项来解决,以便显示编译后的Java类文件2024-11-11
最新评论