【leetcode】第2章 链表

203. 移除链表元素

  • 方法:添加一个虚拟节点,这不用考虑头节点删除情况
public ListNode removeElements(ListNode head, int val) {// 虚拟节点,指向头节点ListNode dummy = new ListNode(0);dummy.next = head;ListNode p = dummy;// 找到被删除节点的前一个节点,进行删除while (p.next != null) {// 若相等,则移除元素if (p.next.val == val) {p.next = p.next.next;}else {p = p.next;}}return dummy.next;
}

707. 设计链表

  • 带有
class ListNode{int val;ListNode next;ListNode(){};ListNode(int val) {this.val = val;}
}class MyLinkedList {int size;ListNode dummy;// 初始化链表public MyLinkedList() {size = 0;dummy = new ListNode(0);}public int get(int index) {if (index < 0 || index >= size) {return -1;}ListNode cur = dummy;for (int i = index; i > 0; --i){cur = cur.next;}return cur.next.val;}public void addAtHead(int val) {ListNode node = new ListNode(val);node.next = dummy.next;dummy.next = node;size++;}public void addAtTail(int val) {// 找到最后一个元素ListNode cur = dummy;ListNode node = new ListNode(val);while (cur.next != null) {cur = cur.next;}cur.next = node;size++;}public void addAtIndex(int index, int val) {if (index > size) return;// 找到第index个节点之前ListNode cur = dummy;ListNode node = new ListNode(val);for (int i = index; i > 0; --i){cur = cur.next;}node.next = cur.next;cur.next = node;size++;}public void deleteAtIndex(int index) {if (index < 0 || index >= size) return;ListNode cur = dummy;if (index == 0) {dummy = dummy.next;}for (int i = index; i > 0; --i){cur = cur.next;}cur.next = cur.next.next;size--;}
}

反转链表

  1. 双指针法
public static ListNode reverseList(ListNode head) {// 输入:head = [1,2,3,4,5]//输出:[5,4,3,2,1]ListNode pre = null;ListNode cur = head;while (cur != null) {ListNode tmp = cur.next;// 反转cur.next = pre;// 迭代当前指向pre = cur;cur = tmp;}return pre;
}
  1. 迭代法
public static ListNode reverseList(ListNode head) {// 输入:head = [1,2,3,4,5]//输出:[5,4,3,2,1]return reverse(null,head);
}public static ListNode reverse(ListNode pre,ListNode cur){if (cur == null) {return pre;}ListNode tmp = cur.next;cur.next = pre;return reverse(cur,tmp);
}

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

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

相关文章

数据结构:树状数组

老规矩&#xff0c;推荐一篇原理讲解清晰的博客&#xff01;&#xff08;树状数组(详细分析应用)&#xff0c;看不懂打死我!_树形数组_鲜果维他命的博客-CSDN博客&#xff09; 相对于线段树&#xff0c;树状数组的优点就是代码简洁&#xff0c;容易修改。单缺点就是优点问题只…

计算机视觉中的特征检测和描述

一、说明 这篇文章是关于计算机视觉中特征检测和描述概念的简要理解。在其中&#xff0c;我们探讨了它们的定义、常用技术、简单的 python 实现和一些限制。 二、什么是特征检测和描述&#xff1f; 特征检测和描述是计算机视觉中的基本概念&#xff0c;在图像识别、对象跟踪和图…

Beats:使用 Filebeat 将 golang 应用程序记录到 Elasticsearch - 8.x

毫无疑问&#xff0c;日志记录是任何应用程序最重要的方面之一。 当事情出错时&#xff08;而且确实会出错&#xff09;&#xff0c;我们需要知道发生了什么。 为了实现这一目标&#xff0c;我们可以设置 Filebeat 从我们的 golang 应用程序收集日志&#xff0c;然后将它们发送…

Maven教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 Maven 是一款基于 Java 平台的项目管理和整合工具&#xff0c;它将项目的开发和管理过程抽象成一个项目对象模型&#xff08;POM&#xff09;。开发人员只需要做一些简单的配置&#xff0c;Maven 就可以自动完成项目的编译、测试、打包、发布以及部署等工作。Maven 是…

微信小程序备案流程

微信小程序备案流程 &#x1f4d4; 千寻简笔记介绍 千寻简笔记已开源&#xff0c;Gitee与GitHub搜索chihiro-notes&#xff0c;包含笔记源文件.md&#xff0c;以及PDF版本方便阅读&#xff0c;且是用了精美主题&#xff0c;阅读体验更佳&#xff0c;如果文章对你有帮助请帮我…

二、异常日志

二、异常日志 &#xff08;一&#xff09;、错误码 错误码的制定原则&#xff1a;快速溯源、沟通标准化错误码不体现版本号和错误等级信息全部正常&#xff0c;但不得不填充错误码时返回五个零&#xff1a;00000错误码为字符串类型&#xff0c;共 5 位&#xff0c;分成两个部分…

win10 anaconda pytorch avalanche-lib 实验步骤记录

conda create --name test_python3.10 conda activate test_python3.10 配置conda国内源(北外) conda install pytorch torchvision torchaudio cpuonly -c pytorch pip3 install avalanche-lib -i https://pypi.tuna.tsinghua.edu.cn/simple conda install jupyter jupyte…

[tidb] tiup升级tidb的版本到 v7.1.1

备份 为了避免数据丢失&#xff0c;升级前需要备份当前tidb集群的数据&#xff0c;参考 TiDB 备份与恢复概述 | PingCAP 文档中心 说明 由于新版本的tidb的tiflash需要cpui支持avx2&#xff0c;所有升级前先验证当前升级的服务器是否支持avx2。升级的文档可以参考 使用 TiUP…

Android布局【TableLayout】

文章目录 说明常见属性子控件设置属性 项目结构主要代码 说明 TableLayout也称为表格布局 常见属性 android:collapseColumns&#xff1a;设置需要被隐藏的列的序列号&#xff0c;从0开始android:stretchColumns&#xff1a;设置允许被拉伸的列的列序号&#xff0c;从0开始&…

docker私有镜像仓库搭建

1、下载registry镜像 docker pull registry:2.52、生成登录私有仓库的用户名以及密码 mkdir -p /opt/registry/auth/ docker run --entrypoint htpasswd registry:2.5 -Bbn username userpwd >> /opt/registry/auth/htpasswd3、创建配置文件 mkdir -p /opt/registry/…

Git - 配置代理 和 取消代理配置

一. 配置代理 (使git走网路代理) git config --global http.proxy socks5://127.0.0.1:1080 git config --global https.proxy socks5://127.0.0.1:1080 其中 1080 是 SOCKS 代理的端口&#xff0c;一般默认 1080&#xff0c;可以在代理工具的设置中查看 地址记录&#xff1a…

Python中使用隧道爬虫ip提升数据爬取效率

作为专业爬虫程序员&#xff0c;我们经常面临需要爬取大量数据的任务。然而&#xff0c;有些网站可能会对频繁的请求进行限制&#xff0c;这就需要我们使用隧道爬虫ip来绕过这些限制&#xff0c;提高数据爬取效率。本文将分享如何在Python中使用隧道爬虫ip实现API请求与响应的技…

(十八)大数据实战——Hive的metastore元数据服务安装

前言 Hive的metastore服务作用是为Hive CLI或者Hiveserver2提供元数据访问接口。Hive的metastore 是Hive元数据的存储和管理组件&#xff0c;它负责管理 Hive 表、分区、列等元数据信息。元数据是描述数据的数据&#xff0c;它包含了关于表结构、存储位置、数据类型等信息。本…

Android Jetpack Compose 中的分页与缓存展示

Android Jetpack Compose 中的分页与缓存展示 在几乎任何类型的移动项目中&#xff0c;移动开发人员在某个时候都会处理分页数据。如果数据列表太大&#xff0c;无法一次从服务器检索完毕&#xff0c;这就是必需的。因此&#xff0c;我们的后端同事为我们提供了一个端点&#…

ArcGIS Pro应用—暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合、案例应用全流程科研能力提升教程

详情点击链接&#xff1a;ArcGIS Pro应用—暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合、案例应用全流程科研能力提升教程 第一&#xff1a;GIS及ArcGIS Pro 1.GIS基本原理及常用软件 2.ArcGIS Pro 安装与配置 3.ArcGIS Pro 3.0 的新…

C语言自动抓取淘宝商品详情网页数据,实现轻松高效爬虫

你是否曾经遇到过需要大量获取网页上的数据&#xff0c;但手动复制粘贴又太过费时费力&#xff1f;那么这篇文章就是为你而写。今天我们将会详细讨论如何使用C语言实现自动抓取网页上的数据。本文将会从以下8个方面进行逐步分析讨论。 1. HTTP协议的基本原理 在开始之前&…

小白到运维工程师自学之路 第七十三集 (kubernetes应用部署)

一、安装部署 1、以Deployment YAML方式创建Nginx服务 这个yaml文件在网上可以下载 cat nginx-deployment.yaml apiVersion: apps/v1 #apiVersion是当前配置格式的版本 kind: Deployment #kind是要创建的资源类型&#xff0c;这里是Deploymnet metadata: #metadata是该资源…

Photoshop多图片与多窗口下排列操作方法

首先&#xff0c;在Photoshop中打开6张图片&#xff0c;在“窗口”菜单下切换窗口排列状态&#xff1a; 在 “窗口”菜单下对窗口进行排列&#xff0c;分别呈现如下&#xff1a; &#xff08;一&#xff09;. 点击“窗口” -> “排列”->"全部垂直拼贴": &am…

本地oracle登录账号锁定处理,the account is locked

1.打开cmd命令窗口 2.打开sqlplus: sqlplus /nolog(加/nolog是不登录服务器的意思&#xff0c;不加就需要输账号密码) 3.切换到管理员&#xff1a;conn / as sysdba; 第2步第3步可以合并&#xff0c;直接使用sysdba登录&#xff1a;sqlplus / as sysdba; 4.解锁账号&#x…

大端和小端

大端和小端 大端&#xff08;Big Endian&#xff09;和小端&#xff08;Little Endian&#xff09;是两种不同的字节序排列方式&#xff0c;用于解释多字节数据在内存中的存储顺序。 在大端字节序中&#xff0c;高位字节&#xff08;最高有效位&#xff09;存储在低位地址&am…