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

算法——移除链表元素(leetcode203)

移除链表元素首先我们要理解链表这种数据结构,它跟数组不一样它可以分布在内存中的各个位置链表节点由值和指针组成,指针指向下一个链表节点。

移除链表元素简而言之就是将符合条件的链表节点给移除出去我们不能直接将其移除而是通过将被移除节点的上一个节点的指针指向被移除节点的下一个节点的地址就完成了链表元素的移除操作特别要注意的是java中是有内存回收机制的所以不需要手动释放节点而c++是需要的。

方法一(单独处理头结点)

/*** 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 removeElements(ListNode head, int val) {//处理头结点while(head!=null&&head.val==val){head=head.next;}ListNode cur=head;while(cur!=null&&cur.next!=null){if(cur.next.val==val){cur.next=cur.next.next;}else{cur=cur.next;}}return head;}
}

方法二(创建一个虚拟节点next指针指向头结点)

/*** 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 removeElements(ListNode head, int val) {//定义一个虚拟节点ListNode vNode=new ListNode();vNode.next=head;ListNode cur=vNode;while(cur.next!=null){if(cur.next.val==val){cur.next=cur.next.next;}else{cur=cur.next;}}return vNode.next;}
}


http://www.mrgr.cn/news/74871.html

相关文章:

  • 【AI日记】24.11.14 复习和准备 RAG 项目 | JavaScript RAG Web Apps with LlamaIndex
  • 基于深度学习的路面裂缝检测算法matlab仿真
  • 安科瑞工业绝缘监测装置:保障煤矿井下6kV供电系统安全运行的关键应用——安科瑞 丁佳雯
  • 18B电阻
  • 【MySQL】explain之type类型
  • vue2使用 <component> 标签动态渲染不同的表单组件
  • 单片机设计电流与温度监控python上位机监控平台设计
  • 三维点云 和模型转换的问题
  • 【Linux】多线程(中)
  • maven 中存在jar包,但是pom无法依赖
  • ssm114基于SSM框架的网上拍卖系统的设计与实现+vue(论文+源码)_kaic
  • ABAP开发学习——权限控制
  • 重磅!EN 1888-3欧盟婴儿手推车标准更新
  • 从H264视频中获取宽、高、帧率、比特率等属性信息
  • 【轻松解决】Defender SmartScreen 风险提示
  • 意式轻奢风!
  • shell批量重命名
  • 【SQL】一文速通SQL
  • aitrader双界面引擎(dash和streamlit),引入zvt作为数据获取及存储支持
  • 前端数据可视化库介绍Echarts、D3.js、Plotly、Matplotlib
  • ssh登陆服务器后支持Tab键命令补全
  • 改扩配系列:浪潮英政服务器CS5280H2、IR5280H2——板载前置3.5寸*12口背板
  • 抠图软件哪个好用?8款抠图软件轻松实现一键抠图!
  • Java EE 技术基础知识体系梳理
  • MATLAB保存多帧图形为视频格式
  • 【redis】—— 初识redis(redis基本特征、应用场景、以及重大版本说明)