当前位置: 首页 > news >正文

leetcode203-Remove Linked List Elements

题目

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。
示例 1:
输入:head = [1,2,6,3,4,5,6], val = 6
输出:[1,2,3,4,5]
示例 2:
输入:head = [], val = 1
输出:[]

分析

可以先处理掉头结点=val的情况,然后因为要删除一个结点,删除一个结点的时候肯定需要知道被删除结点的上一个结点,所以用一个哨兵记录当前结点,一个记录上一个结点,如果当前结点和val相等那么更新上一个结点的next指针,如果不相等那就更新上一个结点

public class LinkNode {int val;LinkNode next;public LinkNode(int data) {this.val = data;this.next = null;}
}
public class LinkList {LinkNode head;public LinkList() {this.head = null;}public LinkNode getHead() {return this.head;}//添加元素public void addNode(int data) {LinkNode node = new LinkNode(data);if (this.head == null) {this.head = node;} else {LinkNode cur = this.head;while(cur.next != null) {cur = cur.next;}cur.next = node;}}//正序打印public void print(LinkNode node) {while(node != null) {System.out.print(node.val);System.out.print(" ");node = node.next;}System.out.println();}public void deleteDupl(int val) {LinkNode p = this.head;while(this.head != null && this.head.val == val) {this.head = this.head.next;}if(this.head == null) {return;}LinkNode prev = this.head;LinkNode cur = this.head.next;while(cur != null) {if(cur.val == val) {prev.next = cur.next;} else {prev = cur;}cur = cur.next;}print(this.head);}
}
public class removeLinkedListElements {public static void main(String[] args) {LinkList list = new LinkList();list.addNode(1);list.addNode(2);list.addNode(6);list.addNode(3);list.addNode(4);list.addNode(5);list.addNode(6);list.deleteDupl(6);list = new LinkList();list.addNode(6);list.addNode(6);list.addNode(6);list.deleteDupl(6);}
}
http://www.lryc.cn/news/344627.html

相关文章:

  • 2024付费进群系统,源码及搭建变现视频课程(教程+源码)
  • 深入理解Django:中间件与信号处理的艺术
  • rk3588局域网推流
  • Android虚拟机机制
  • 【触摸案例-手势解锁案例-按钮高亮 Objective-C语言】
  • ChatPPT开启高效办公新时代,AI赋能PPT创作
  • 【C语言项目】贪吃蛇(上)
  • LeNet-5上手敲代码
  • javaWeb入门(自用)
  • web3风格的网页怎么设计?分享几个,找找感觉。
  • ASP.NET MVC(-)表单的提交、获取表单数据
  • [AIGC] 《MyBatis-Plus 结合 Spring Boot 的动态数据源介绍及 Demo 演示》
  • 【华为OD机试C卷D卷】部门人力分配(C++/Java/Python)
  • 毕业设计:《基于 Prometheus 和 ELK 的基础平台监控系统设计与实现》
  • docker私有仓库部署与管理
  • 2024第六届济南国际大健康产业博会将于5月27日如期开幕
  • 计算方法实验9:Romberg积分求解速度、位移
  • 设计模式有哪些基本原则
  • 别再出错了!华为交换机到底如何配置access、trunk、hybird端口?
  • OceanBase 分布式数据库【信创/国产化】- OceanBase 平台产品 - 迁移评估工具 OMA
  • UE5入门学习笔记(六)——编译低版本插件
  • MySQL全局锁、表级锁、行锁、死锁、索引选择
  • 深入解析算法效率核心:时间与空间复杂度概览及优化策略
  • 虚拟机装CentOS镜像
  • SpringCloud 集成consul,消费者报I/O error on GET request for...
  • pytest的测试标记marks
  • 端口占用解决方法
  • Java毕设之基于springboot的医护人员排班系统
  • OpenCV4.8 VS2019 MFC编程出现的诡异现象
  • 游戏辅助 -- 三种分析角色坐标方法(CE、xdbg、龙龙遍历工具)