Java实现LeetCode题目

Leetcode707设计链表

使用Java设计一个链表

package link_list;public class Design_Link {public static void main(String[] args) {Design_Link demo = new Design_Link();Design_Link.myLinkedList myLink = new Design_Link().new myLinkedList();myLink.addHead(0);myLink.addIndex(1,1);myLink.addTail(2);myLink.addTail(2);myLink.printVal();myLink.get(1);}class ListNode{int val;ListNode next;public ListNode() {}public ListNode(int val) {this.val=val;}public ListNode(int val,ListNode linkNode) {this.val=val;this.next = linkNode;}}class myLinkedList{//记录链表大小int size;//虚拟头结点ListNode head;public myLinkedList(){size = 0;head = new ListNode(0,null); }//获取第index个结点的数值,注意index是从0开始的,第0个结点就是头结点。public void get(int index) {if(index<0||index>=size) {System.out.print("格式错误");}ListNode cur = head;//包含虚拟结点,所以查找第index+1个结点for(int i =0;i<=index;i++) {cur = cur.next;}System.out.println(cur.val);		}// 在第 index 个节点之前插入一个新节点,例如index为0,那么新插入的节点为链表的新头节点。// 如果 index 等于链表的长度,则说明是新插入的节点为链表的尾结点// 如果 index 大于链表的长度,则返回空public void addIndex(int index,int val) {if(index<0) {index = 0;}else if(index>size) {return;}size++;//找到要插入的结点前驱动ListNode pred = head;for(int i =0;i<index;i++) {pred = pred.next;}ListNode curAdd = new ListNode(val);curAdd.next = pred.next;pred.next= curAdd;}//插入最前面的节点,等价于在第0个元素添加public void addHead(int val) {addIndex(0,val);}//最后插入public void addTail(int val) {addIndex(size,val);}//删除第index个元素public void deleteIndex(int index) {if(index <0||index>=size) {return;}size--;ListNode pred = head;for(int i =0;i<index;i++) {pred = pred.next;}pred.next = pred.next.next;}public void printVal() {ListNode cur = head.next;if(cur!=null) {for(int i=0;i<size;i++) {System.out.print(cur.val+"\t");cur = cur.next;}}else {System.out.println("链表为空");}}}
}

LeetCode206反转链表

package link_list;
public class Revert_Link {public ListNode revertLink(ListNode head) {ListNode pre = new ListNode();ListNode cur = head.next;ListNode temp = new ListNode();while(temp!=null){temp = cur.next;cur.next = pre;pre = cur;cur=temp;}return pre;}
}

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

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

相关文章

OceanBase:OBServer节点管理

目录 1.查看节点 2.添加节点 2.1 创建数据目录 2.2.OceanBase 运行时所依赖的部分三方动态库 2.3.安装 OceanBase 数据库的 RPM 包 2.4.启动节点 observer 进程 2.5.向集群中添加节点 3.隔离节点 4.重启节点 4.1 停止服务 4.2 转储 4.3 关闭进程 4.4 启动进程 4.…

gitBash中如何使用Linux中的tree命令

文章目录 在gitBash中安装tree的目的如何安装安装完成,就可以直接完美适配Linux系统了在gitBash中安装tree的目的 如下图,powershell虽然可以看做是window下的Linux系统,但是根本就不适配很多Linux中的命令 如何安装 tree.exe安装网址 下载 tree 命令的 二进制包,安装 tr…

linux如何一键自动安装系统(PXE)

PXE概述 1、PXE 预启动执行环境&#xff0c;在操作系统之前运行 由Intel公司开发的网络引导技术&#xff0c;工作在Client/Server模式&#xff0c; 允许客户机通过网络从远程服务器下载引导镜像&#xff0c;并加载安装文件或者整个操作系统 2、PXE的优点 规模化:同时装配多…

C++实现:实现一个函数,接受一个n x n的矩阵并返回其行列式的值 某知名上市公司笔试题

目录 题目描述: 分析: 实现代码: 题目描述: 实现一个函数,接受一个n x n的矩阵并返回其行列式 如何求解矩阵的行列式? 1x1 矩阵 [[a]] 的行列式为 a。 2x2 矩阵 [ [a, b],[c, d]]的行列式为 a*d - b*c 通过将问题简化为 n 个大小为 n-1 x n-1的矩阵的行列式来计算,可…

[Vue warn]: Extraneous non-props attributes (class)

// 最外层多个标签&#xff0c;无法在使用子组件标签上定义 class // 会报错&#xff1a;[Vue warn]: Extraneous non-props attributes (class) // were passed to component but could not be automatically inherited // because component renders fragment or tex…

腾讯极光盒子A4021增强版_线刷官方

1、用USB_Burning_Tool线刷提供的线刷包&#xff0c;所需资料地址在最后 1&#xff09;打开USB_Burning_Tool&#xff0c;选择资料里的A4021_line_flash_root.img&#xff08;文件夹最好没有中文字符和空格&#xff09;&#xff0c;然后点击【开始】。 2&#xff09;盒子准备好…

【密文特征分析】加密类型判断

1、代码 import re import sysimport requestsdef post_url(data):"""其实就是把「https://www.dcode.fr/cipher-identifier」网站的功能&#xff0c;改成接口形式之所以改成接口&#xff0c;是因为网站加载有些慢&#xff0c;很多不必要加载很是浪费时间:para…

Lodash常用方法介绍

Lodash 是一个 JavaScript 工具库&#xff0c;提供了许多实用的函数和方法&#xff0c;可以简化 JavaScript 编程中的许多任务。下面是 Lodash 中常用的方法介绍&#xff1a; Array 相关方法&#xff1a;包括对数组的过滤、排序、去重、查找等操作&#xff0c;例如 _.filter()、…

springboot使用的设计模式

设计模式是在软件设计中常用的一些通用解决方案。在开发商城编码时&#xff0c;以下设计模式可能会有用&#xff1a; 工厂模式&#xff08;Factory Pattern&#xff09;&#xff1a; 用于创建对象的模式。在商城中&#xff0c;可能会涉及到创建不同类型的商品、订单等对象&…

【C++上层应用】3. 动态内存

文章目录 【 1. new和delete运算符 】1.1 new 分配内存1.2 delete 释放内存1.3 实例 【 2. 数组的动态内存分配 】2.1 一维数组2.2 二维数组2.3 三维数组 【 3. 对象的动态内存分配 】 C 程序中的内存分为两个部分&#xff1a; 栈&#xff1a;在 函数内部 声明的所有变量都将占…

go语言学习之旅之Go语言函数

学无止境&#xff0c;今天继续学习go语言的基础内容 Go语言函数 Go 语言函数定义格式如下 func function_name( [parameter list] ) [return_types] {函数体}函数定义解析 func&#xff1a;函数由 func 开始声明 function_name&#xff1a;函数名称&#xff0c;函数名和参数…

Me-and-My-Girlfriend-1

Me-and-My-Girlfriend-1 一、主机发现和端口扫描 主机发现&#xff0c;靶机地址192.168.80.147 arp-scan -l端口扫描&#xff0c;开放了22、80端口 nmap -A -p- -sV 192.168.80.147二、信息收集 访问80端口 路径扫描 dirsearch -u "http://192.168.80.147/" -e * …

浪潮信息云峦服务器操作系统KeyarchOS体验与实践

写在前面 大家好我是网络豆&#xff0c;一名云计算运维人员&#xff0c;本文将会带大家体验一下浪潮信息服务器操作系统云峦KeyarchOS。看看浪潮信息服务器操作系统云峦KeyarchOS的优势与实践操作如何。 背景了解 KeyarchOS是浪潮信息基于Linux Kernel、OpenAnolis等开源技术…

【Element】el-progress 自定义进度条

一、背景 要求弹窗内显示进度条&#xff0c;根据接口获取当前进度值&#xff0c;间隔5秒调用接口获取最新进度值&#xff0c;当进度值为100时&#xff0c;允许关闭进度条弹窗 二、效果 三、实现步骤 3.1、按钮绑定事件&#xff0c;打开弹窗 <el-button class"cance…

接入电商数据平台官方开放平台API接口获取商品实时信息数据,销量,评论,详情页演示

要接入电商数据平台官方开放平台API接口获取商品实时信息数据、销量、评论和详情页演示&#xff0c;需要按照以下步骤进行操作&#xff1a; 找到可用的API接口&#xff1a;首先&#xff0c;需要找到支持查询商品信息的API接口。可以在电商数据平台的官方开放平台上查找相应的AP…

python tkinter 使用

python tkinter 使用 ython可以使用多种GUI库来创建窗口页面&#xff0c;例如Tkinter、PyQt、wxPython等。 本篇文章主要讲述如何使用tkinter。 1&#xff1a;导入 import tkinter as tk这时如果运行的话会提示&#xff1a; ModuleNotFoundError: No module named ‘tkint…

JVM常见参数总结

JVM是Java应用程序的运行环境&#xff0c;它通过参数配置来控制其行为和性能。在JVM中&#xff0c;有很多参数可以用来调整其运行状态&#xff0c;这些参数可以帮助开发人员根据应用程序的需求进行优化和调整。在本次分享中&#xff0c;作者将介绍一些常见的JVM参数&#xff0c…

弄懂Rust编程中的Trait

1.定义 trait trait 定义了某个特定类型拥有可能与其他类型共享的功能。可以通过 trait 以一种抽象的方式定义共享的行为。可以使用 trait bounds 指定泛型是任何拥有特定行为的类型。 一个类型的行为由其可供调用的方法构成。如果可以对不同类型调用相同的方法的话&#xff…

机器人制作开源方案 | 莲花灯

1. 功能描述 莲花灯是一款基于莲花形象设计的机器人&#xff0c;本文示例将用两种模式来实现莲花灯的亮灭功能。 自主模式&#xff1a;用 光强传感器 控制莲花灯的灯叶开合。暗光情况下灯叶打开&#xff0c;灯亮&#xff1b;强光情况下灯叶闭合&#xff0c;灯灭。 …

webpack环境变量的设置

现在虽然vite比较流行&#xff0c;但对于用node写后端来说&#xff0c;webpack倒是成了一个很好的打包工具&#xff0c;可以很好的保护后端的代码。所以这块的学习还是不能停下来&#xff0c;接下来我们来针对不同的环境做不同的设置写好笔记。 引用场景主要是针对服务器的各种…