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

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

链表概念

移除链表元素

体会虚拟头结点的便利

/** @lc app=leetcode.cn id=203 lang=java** [203] 移除链表元素*/// @lc code=start
/*** 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 a = new ListNode(-1, head);ListNode b = a;while (b.next != null && b != null) {if (b.next.val == val) {b.next = b.next.next;} else {b = b.next;}}return a.next;}
}
// @lc code=end

设计链表

理解链表的基本操作,注意边界值问题,理清思路

/** @lc app=leetcode.cn id=707 lang=java** [707] 设计链表*/// @lc code=start
class MyLinkedList {class ListNode {int val;ListNode next;ListNode(int val) { this.val = val; }}private ListNode head;  // 头节点private int length;public MyLinkedList() {head = null;length = 0;}public int get(int index) {if (index < 0 || index >= length) 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;head = newNode;length++;}public void addAtTail(int val) {if (head == null) {addAtHead(val);return;}ListNode cur = head;while (cur.next != null) cur = cur.next;cur.next = new ListNode(val);length++;}public void addAtIndex(int index, int val) {if (index > length) return;if (index == 0) {addAtHead(val);return;}// 找到 index 的前一个节点ListNode prev = head;for (int i = 0; i < index - 1; i++) prev = prev.next;ListNode newNode = new ListNode(val);newNode.next = prev.next;prev.next = newNode;length++;}public void deleteAtIndex(int index) {if (index < 0 || index >= length) return;if (index == 0) {head = head.next;} else {ListNode prev = head;for (int i = 0; i < index - 1; i++) prev = prev.next;prev.next = prev.next.next;}length--;}
}/*** Your MyLinkedList object will be instantiated and called as such:* MyLinkedList obj = new MyLinkedList();* int param_1 = obj.get(index);* obj.addAtHead(val);* obj.addAtTail(val);* obj.addAtIndex(index,val);* obj.deleteAtIndex(index);*/
// @lc code=end

反转链表

头插法解决

/** @lc app=leetcode.cn id=206 lang=java** [206] 反转链表*/// @lc code=start
/*** 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 reverseList(ListNode head) {if (head == null || head.next == null) {return head;}ListNode temp = new ListNode();ListNode result = new ListNode();ListNode a = new ListNode();temp.next = head;while (temp.next != null) {temp = temp.next;a = new ListNode(temp.val);a.next = result.next;result.next = a;}return result.next;}
}
// @lc code=end
http://www.jsqmd.com/news/444758/

相关文章:

  • all-MiniLM-L6-v2快速上手:Ollama一键部署,小白也能搞定的文本向量化服务
  • WPF数据可视化实战:LiveCharts图表缩放与平移功能全解析(附完整代码)
  • 2026年精选:六大家用不锈钢阳台柜制造厂深度评估 - 2026年企业推荐榜
  • Qwen3-Embedding-0.6B快速部署指南:5分钟搞定文本嵌入模型
  • Flutter 三方库 firebase_rules 的鸿蒙化适配指南 - 掌控安全规则资产、精密 Firebase 治理实战、鸿蒙级合规专家
  • VS2017中Oracle.ManagedDataAccess.Client配置全攻略:从NuGet到machine.config的完整避坑指南
  • MCP Sampling在Service Mesh中彻底失焦?Envoy Filter注入+OpenTracing Bridge+自适应采样率算法(已落地金融级核心链路)
  • 手把手教你设计一个简单的微处理器:基于ALU和寄存器组的实践指南
  • 流媒体开发必看:GB28181中的RTP/PS封装与Wireshark抓包分析指南
  • 技术主题:5个步骤重建Windows安全中心服务的完整方案
  • 【Dify混合RAG召回率优化实战手册】:20年AI工程老兵亲授5大避坑铁律,第3条90%团队正在踩雷
  • 2026年合肥地区日夜帘加工公司综合实力TOP5盘点 - 2026年企业推荐榜
  • MelonLoader:突破Unity游戏模组开发壁垒的跨架构解决方案
  • 智能查询新范式:WrenAI引领数据交互革命
  • MinerU新手教程:从零开始搭建文档理解服务,支持多轮对话与批量处理
  • Qwen3-ForcedAligner-0.6B入门必看:Streamlit Session State在长音频分页查看中的高效应用
  • 幻境·流金技术解析:Z-Image审美基座如何训练与微调
  • 如何让淘宝福利自动到账?探索taojinbi自动化任务工具的高效解决方案
  • SiameseAOE中文-base医疗健康:患者问诊记录中‘用药反应’‘复诊建议’属性抽取
  • 预备知识
  • 2026年云南食品包装盒专业生产商深度评选指南 - 2026年企业推荐榜
  • 2026年旧房翻新必看:厦门老房装修公司选型指南与核心指标实测 - 品牌推荐
  • 2026年阜阳物权纠纷律师评测:专业能力与实战案例深度解析 - 2026年企业推荐榜
  • 2026年家庭装修必看:厦门新房装修公司选型指南与八项核心指标实测 - 品牌推荐
  • 2026年旧房翻新必看:厦门老房装修公司选型指南与八项核心服务指标实测 - 品牌推荐
  • 2026年家庭装修必看:厦门新房装修公司选型指南与核心指标实测 - 品牌推荐
  • 2026年旧房翻新必看:厦门老房装修公司选型指南与八项核心指标实测对比 - 品牌推荐
  • 2026年用户口碑最好的厦门新房装修公司推荐:五家真实评价与交付体验对比 - 品牌推荐
  • 2026年值得关注的琉璃瓦实力供货厂家盘点 - 2026年企业推荐榜
  • REFramework问题解决与高效重装指南