泊头市网站建设价格百度网站排名 查询

news/2025/9/28 10:58:23/文章来源:
泊头市网站建设价格,百度网站排名 查询,北京seo排名优化网站,厦门无忧网站建设有限公司JAVA代码编写 203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val #xff0c;请你删除链表中所有满足 Node.val val 的节点#xff0c;并返回 新的头节点 。 示例 1#xff1a; 输入#xff1a;head [1,2,6,3,4,5,6], val 6 输出#xff1a;[1,2,3,4,5]示…JAVA代码编写 203. 移除链表元素 给你一个链表的头节点 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 输出[]示例 3 输入head [7,7,7,7], val 7 输出[]提示 列表中的节点数目在范围 [0, 104] 内1 Node.val 500 val 50 教程https://programmercarl.com/0203.%E7%A7%BB%E9%99%A4%E9%93%BE%E8%A1%A8%E5%85%83%E7%B4%A0.html 视频https://www.bilibili.com/video/BV18B4y1s7R9 方法一设置一个虚拟头结点 思路首先为什么要加虚拟头结点是因为如果要删的元素是头结点会与删后面的结点操作不一样这样比较方便。定义一个当前指针cur用来变量定义一个pre指针用来删除结点经典的指针删除的操作如下图所示将pre指向cur。这里要注意的是当不是要删除的元素时pre指针需要往后移一位。还有while循环需要注意虽然看代码能懂写起来还是有点磕磕绊绊。 复杂度分析 时间复杂度 O ( n ) O(n) O(n)空间复杂度 O ( 1 ) O(1) O(1) 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) {if (headnull){//如果头结点head为空return head;//直接返回head不需要删除操作}ListNode dummynew ListNode(-1,head);//定义一个指针值为-1在head前一个ListNode pre dummy;//当前指针的前一个指针ListNode cur head;//当前指针while(cur!null){//当前指针不为空if (cur.valval){//指针值是目标值pre.nextcur.next;//前一个指针直接指向下下个指针跳过指定目标值}else {pre cur;//如果不是要删除的指针就和cur一样往后移一位以便下一次删除操作}curcur.next;}return dummy.next;}}看一个例子输入head [1,2,6,3,4,5,6], 要删元素6。 class Solution {public ListNode removeElements(ListNode head, int val) {ListNode dummyHead new ListNode(0);dummyHead.next head;//在head之前定义一个dummyHead结点其值为0ListNode temp dummyHead;while (temp.next ! null) {if (temp.next.val val) {temp.next temp.next.next;} else {temp temp.next;}}return dummyHead.next;} }这个代码是leetcode官方提供的与卡哥的代码差不多这里少定义了一个指针cur因为curtemp.next这里都用temp代劳了。 707. 设计链表 企业谷歌、亚马逊、字节 你可以选择使用单链表或者双链表设计并实现自己的链表。 单链表中的节点应该具备两个属性val 和 next 。val 是当前节点的值next 是指向下一个节点的指针/引用。 如果是双向链表则还需要属性 prev 以指示链表中的上一个节点。假设链表中的所有节点下标从 0 开始。 实现 MyLinkedList 类 MyLinkedList() 初始化 MyLinkedList 对象。int get(int index) 获取链表中下标为 index 的节点的值。如果下标无效则返回 -1 。void addAtHead(int val) 将一个值为 val 的节点插入到链表中第一个元素之前。在插入完成后新节点会成为链表的第一个节点。void addAtTail(int val) 将一个值为 val 的节点追加到链表中作为链表的最后一个元素。void addAtIndex(int index, int val) 将一个值为 val 的节点插入到链表中下标为 index 的节点之前。如果 index 等于链表的长度那么该节点会被追加到链表的末尾。如果 index 比长度更大该节点将 不会插入 到链表中。void deleteAtIndex(int index) 如果下标有效则删除链表中下标为 index 的节点。 示例 输入 [MyLinkedList, addAtHead, addAtTail, addAtIndex, get, deleteAtIndex, get] [[], [1], [3], [1, 2], [1], [1], [1]] 输出 [null, null, null, null, 2, null, 3]解释 MyLinkedList myLinkedList new MyLinkedList(); myLinkedList.addAtHead(1); myLinkedList.addAtTail(3); myLinkedList.addAtIndex(1, 2); // 链表变为 1-2-3 myLinkedList.get(1); // 返回 2 myLinkedList.deleteAtIndex(1); // 现在链表变为 1-3 myLinkedList.get(1); // 返回 3提示 0 index, val 1000请不要使用内置的 LinkedList 库。调用 get、addAtHead、addAtTail、addAtIndex 和 deleteAtIndex 的次数不超过 2000 。 教程https://programmercarl.com/0707.%E8%AE%BE%E8%AE%A1%E9%93%BE%E8%A1%A8.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE 视频https://www.bilibili.com/video/BV1FU4y1X7WD 方法一单链表 思路 复杂度分析 时间复杂度: 涉及 index 的相关操作为 O(index), 其余为 O(1) 空间复杂度: O(n) class ListNode {int val;ListNode next;ListNode(){}ListNode(int val) {this.valval;} } class MyLinkedList {//size存储链表元素的个数int size;//虚拟头结点ListNode head;//初始化链表public MyLinkedList() {size 0;head new ListNode(0);}//获取第index个节点的数值注意index是从0开始的第0个节点就是头结点public int get(int index) {//如果index非法返回-1if (index 0 || index size) {return -1;}ListNode currentNode head;//包含一个虚拟头节点所以查找第 index1 个节点for (int i 0; i index; i) {currentNode currentNode.next;}return currentNode.val;}//在链表最前面插入一个节点等价于在第0个元素前添加public void addAtHead(int val) {addAtIndex(0, val);}//在链表的最后插入一个节点等价于在(末尾1)个元素前添加public void addAtTail(int val) {addAtIndex(size, val);}// 在第 index 个节点之前插入一个新节点例如index为0那么新插入的节点为链表的新头节点。// 如果 index 等于链表的长度则说明是新插入的节点为链表的尾结点// 如果 index 大于链表的长度则返回空public void addAtIndex(int index, int val) {if (index size) {return;}if (index 0) {index 0;}size;//找到要插入节点的前驱ListNode pred head;for (int i 0; i index; i) {pred pred.next;}ListNode toAdd new ListNode(val);toAdd.next pred.next;pred.next toAdd;}//删除第index个节点public void deleteAtIndex(int index) {if (index 0 || index size) {return;}size--;if (index 0) {head head.next;return;}ListNode pred head;for (int i 0; i index ; i) {pred pred.next;}pred.next pred.next.next;} }206. 反转链表 微软 Microsoft、亚马逊、奥多比 Adobe 给你单链表的头节点 head 请你反转链表并返回反转后的链表。 示例 1 输入head [1,2,3,4,5] 输出[5,4,3,2,1]示例 2 输入head [1,2] 输出[2,1]示例 3 输入head [] 输出[]提示 链表中节点的数目范围是 [0, 5000]-5000 Node.val 5000 **进阶**链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题 教程https://programmercarl.com/0206.%E7%BF%BB%E8%BD%AC%E9%93%BE%E8%A1%A8.html 视频https://www.bilibili.com/video/BV1nB4y1i7eL 方法一双指针法 思路 复杂度分析 时间复杂度 O ( n ) O(n) O(n)空间复杂度 O ( 1 ) O(1) O(1) 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) {ListNode pre null;ListNode cur head;ListNode temp null;while(cur!null){temp cur.next;cur.nextpre;后一个指针指向前一个指针precur;curtemp;}return pre;} }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中国DevOps平台竞品分析:安全合规与技术生态的双重较量

中国DevOps平台竞品分析:安全合规与技术生态的双重较量 在数字化转型进入深水区的当下,DevOps平台作为企业研发效能的核心支撑,其选择直接关系到组织的创新效率和合规安全。2025年的中国市场上,Gitee、阿里云效和G…

experiment 1

实验目的会使用C语言程序开发环境(vs2010/devc++等),能熟练使用其编写、编译、运行、调试C程序 知道C程序结构和编码规范,能正确使用 能熟练使用C语言输入输出函数: scanf() , printf() , getchar() , putchar() …

做网站无锡单网页网站内容

在本机启动 http 服务,在你要下载文件的目录下输入 cmd ,运行 python -m http.server前提条件:本机安装了 python 服务。 查看本机 IP(无线局域网 IP),重新开一个窗口,查看本机 IP 地址。 ipc…

图领域的METIS算法介绍 - zhang

1. 算法来源 来源论文 论文题目: Partial Parallelization of Graph Partitioning Algorithm METIS 2. METIS算法 主要用于将大规模稀疏图高效划分为多个均衡子图,用于并行计算任务分配,VLS布局优化,有限元网络剖分…

【Double】浮点数:精确的小数计算

【Double】浮点数:精确的小数计算在编程中,浮点数(Double) 用于表示带小数点的数值。当我们需要进行精确的小数计算时,浮点数比整数更加适用。浮点数可以表示非常大或非常小的数值,并保持一定的精度。 一、 认识…

贵州高端建设网站特效视频素材网站

NPM NPM 的全称是 Node Package Manager,是随同 NodeJS 一起安装的包管理和分发工具,它很方便让 JavaScript 开发者下载、安装、上传以及管理已经安装的包。 官网 npm 官网:https://www.npmjs.com npm 命令 命令说明npm init初始化一个新的…

CANOpen safety SRDO相关问题总结

CANOpen PDO过程大家经常会使用,交互过程也比较熟悉,但是safety协议以及SRDO流程基本上都不是很熟悉,参考标准D301和D304 今天把最近研究SRDO的内容和现场调试的心得做一个总结

Prometheus源码专题【左扬精讲】—— 监控系统 Prometheus 3.4.0 源码解析:head_wal.go 的 WAL 写入策略与缓存管理源码解读

Prometheus源码专题【左扬精讲】—— 监控系统 Prometheus 3.4.0 源码解析:head_wal.go 的 WAL 写入策略与缓存管理源码解读

【Boolean】布尔值:逻辑判断的基础

【Boolean】布尔值:逻辑判断的基础在编程中,布尔值(Boolean) 是最简单的数据类型,只有两个可能的值:真($true) 或 假($false)。虽然简单,但布尔值在逻辑判断和程序流程控制中扮演着至关重要的角色。 一、 认…

电子通信词汇中英文对照

电子中英文对照中文 英文 举例说明符号还原 demangling 如c++filt

计算机考试模拟网站怎么做陕西有哪些公司是网站建设

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv8改进有效…

从“手机拆修”看懂POD与非POD的区别 - 教程

从“手机拆修”看懂POD与非POD的区别 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &quo…

网天下信息技术有限公司网站上海家装公司排名

向已有ZIP中追加文件&#xff0c;使用qt自带的QZipWriter和quazip库均失败了&#xff0c;要么格式损坏、要么ZIP里面的原有的文件清空了 使用7z.exe可以实现 : 指令 7z.exe a A.zip B.txt&#xff0c;使用代码控制如下 #include <QCoreApplication> #include <QFile…

技术支持::天空网络-临汾做网站网站解析需要什么

“智能检测&#xff0c;精准把控。温湿度检测系统&#xff0c;为您的生活带来全方位的健康保障。”#非标协议项目【上】 前言预备知识1温湿度检测系统需求2.代码整合2.1找到编程实现LCD1602显示一行工程&#xff0c;打开代码文件&#xff0c;将所需的LCD1602驱动代码拷贝到温湿…

完整教程:【有源码】基于Hadoop+Spark的AI就业影响数据分析与可视化系统-AI驱动下的就业市场变迁数据分析与可视化研究-基于大数据的AI就业趋势分析可视化平台

完整教程:【有源码】基于Hadoop+Spark的AI就业影响数据分析与可视化系统-AI驱动下的就业市场变迁数据分析与可视化研究-基于大数据的AI就业趋势分析可视化平台pre { white-space: pre !important; word-wrap: normal …

Tomcat中启用h3的方法是什么

在Tomcat中启用HTTP/3(h3)需要使用一个支持QUIC和HTTP/3的连接器。目前,Tomcat还不支持原生的HTTP/3,但是可以使用QuicT,一个基于Java实现的QUIC连接器。 以下是在Tomcat中启用HTTP/3的步骤: 1. 下载QuicT连接器…

k8s-Namespace

Namespace 是k8s中做用户隔离的,适用于多租户的场景。 Namespace 是 Kubernetes 用于实现资源逻辑隔离、多租户、安全授权和环境区分的重要机制,是大规模集群必备的组织手段。Namespace 是什么? Namespace 是 Kuber…

国产化Excel开发组件Spire.XLS教程:C# 写入 Excel ,轻松将数据导出到工作表

本文将系统讲解如何使用 C# 写入 Excel 文件 ,包括不同数据类型的插入方法、批量数据写入技巧、文件保存与导出,助力开发者提升数据处理与自动化能力。Excel 作为最常用的数据管理与分析工具之一,被广泛应用于各类数…

分布式专题——23 Kafka日志索引详解 - 指南

分布式专题——23 Kafka日志索引详解 - 指南2025-09-28 10:38 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: bl…

Agent的九种设计模式 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …