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

代码随想录算法训练营第三天| 203.移除链表元素、707.设计链表 、206.反转链表 

移除链表元素

题目链接讲解链接:https://programmercarl.com/0203.%E7%A7%BB%E9%99%A4%E9%93%BE%E8%A1%A8%E5%85%83%E7%B4%A0.html
当要移除链表元素的时候,先创建一个新的指针,这个指针可以顺着链表遍历所有的元素,找到与给定val一样的值然后改变这个指针的下一个元素即可

点击查看代码
class Solution {public ListNode removeElements(ListNode head, int val) {while(head!=null&&head.val==val){head = head.next;}ListNode curr = head;while(curr!=null&&curr.next!=null){if(curr.next.val  == val){curr.next = curr.next.next;}else{curr = curr.next;}        }return head;}
}

设计链表

https://programmercarl.com/0707.%E8%AE%BE%E8%AE%A1%E9%93%BE%E8%A1%A8.html
这里主要是完整的设计一个链表,满足不同的删除/增加条件,灵活变换新的指针(pre或者cur),在增加或删除结点的时候,如果要根据index来看,则要增添size来记载这个链表的范围,增加条件限制。

点击查看代码
class MyLinkedList {class ListNode{int val;ListNode next;ListNode(int val){this.val = val;}}private int size;private ListNode head;public MyLinkedList() {this.size = 0;this.head = new ListNode(0);}public int get(int index) {if(index<0 || index>=size){return -1;}ListNode cur = head;for(int i = 0; i<=index; i++){cur = cur.next;}return cur.val;}public void addAtHead(int val) {ListNode newNode = new ListNode(val);newNode.next = head.next;head.next = newNode;size++;}public void addAtTail(int val) {ListNode newNode = new ListNode(val);ListNode cur = head;while(cur.next!=null){cur = cur.next;}cur.next = newNode;size++;}public void addAtIndex(int index, int val) {ListNode newNode = new ListNode(val);ListNode pre = head;if(index<0||index>size){return;}for(int i = 0; i<index; i++){pre = pre.next;}newNode.next = pre.next;pre.next = newNode;size++;}public void deleteAtIndex(int index) {ListNode cur = head;if(index<0 || index >=size){return;}for(int i = 0; i<index; i++){cur = cur.next;}cur.next = cur.next.next;size--;}
}

反转链表

https://programmercarl.com/0206.%E7%BF%BB%E8%BD%AC%E9%93%BE%E8%A1%A8.html
使用双指针法,可以不用改变head,但建立新的指针例如pre来表示最后的head,建立指针pre和cur,cur初始值为head,pre初始为null(这样最后表示尾节点的下一个指向null)注意在转换的时候还需要一个临时结点temp来记载cur的下一个节点,以防节点的丢失。在改变cur的下一个之前,先用temp存储现在cur的下一个节点,再将cur下一个节点变为pre,随后先改变pre到cur,再将cur变为temp(如果交换顺序不能成立,pre的值无法表示)。

点击查看代码
class Solution {public ListNode reverseList(ListNode head) {ListNode pre = null;ListNode cur = head;ListNode temp;while(cur!=null){temp = cur.next;cur.next = pre;pre = cur;cur = temp;}return pre;
}}
http://www.jsqmd.com/news/443652/

相关文章:

  • 2026年香港本科申请中介哪家好?港前三申请中介专业机构推荐 - 品牌2026
  • 2026国内护肤洗涤OEM_ODM广东广州十品牌实力排行榜 - 十大品牌榜
  • 从对话到协同:2026 年 Multi-Agent 框架深度选型与商业价值指南
  • SKILL.md文档的书写规范和要求
  • 2026年湖南望城区性价比高的财务咨询品牌公司排名出炉 - myqiye
  • 2026 必看!铂金定制生产厂家哪家强? - 品牌推荐大师
  • RC-1溶出仪口碑厂家深度评测与推荐 - 品牌推荐大师1
  • 2026年总结优质空中摇篮供应商,郑州地区哪家值得选 - 工业推荐榜
  • 终端执行python脚本,并使用终端输入的额外参数
  • 分享江苏导热油炉价格行情,分析哪家性价比高 - 工业设备
  • 2026年SAT快速提分补习机构推荐 高效出分冲刺培训机构哪家提分快 - 品牌2026
  • 详解2026郑州华埔装饰客户评价,推荐专业评价高的装修公司选择 - 工业品网
  • 2026香港留学申请深度解析与深圳留学中介推荐指南 - 品牌2026
  • DevonAR/VR:沉浸式编程体验探索 - 教程
  • 2026 年国内大健康 OEM_ODM 十大品牌广东广州排名及解析 - 十大品牌榜
  • kotlin 基础(1)
  • 2026年商丘互联网运营公司口碑排名,沟通能力强的公司盘点 - 工业推荐榜
  • 2026SAT精品小班辅导机构哪家好 线下一对一专业高端培训机构推荐 - 品牌2026
  • 2026最新新风系统/换气扇/风幕机/除湿机/风机推荐:多元场景适配,这家实力突出 - 十大品牌榜
  • 2026年驻马店家具定制供应企业排名,哪家性价比高? - 工业品牌热点
  • 2026深圳美国留学中介哪家好?专业高端美国留学中介服务推荐 - 品牌2026
  • 2026香港本科申请中介推荐指南,港前三申请中介靠谱机构详细介绍 - 品牌2026
  • Vite 启动本地开发环境失败 `Cannot find package`
  • 探讨青海蒙娜丽莎婚纱摄影,其性价比究竟如何 - mypinpai
  • 造纸靴压机远程监控运维系统方案
  • 速看!这些体积表面电阻率测试仪品牌值得推荐 - 品牌推荐大师
  • 2026年 液压扳手/拉伸器/中空扳手厂家实力推荐榜:专业动力工具源头工厂,核心技术解析与选购指南 - 品牌企业推荐师(官方)
  • 细聊境道原竹耐用性,广东地区选择哪家比较靠谱? - myqiye
  • 2026年医用无影灯厂家实力推荐榜:手术室无影灯、医用手术无影灯专业品牌深度解析,聚焦技术创新与临床光效 - 品牌企业推荐师(官方)
  • 2026深圳留学中介推荐怎么选?深圳高端留学中介推荐避坑攻略 - 品牌2026