LinkedList和单双链表。
java中提供了双向链表的动态数据结构 --- LinkedList,它同时也实现了List接口,可以当作普通的列表来使用。也可以自定义实现链表。
单向链表:一个节点=本节点数据+下个节点地址
给定两个有序链表的头指针head1和head2,打印两个链表的公共部分。
public class Lee {private Node head1;private Node head2;Lee(){this.head1= new Node(0);this.head2= new Node(0);}public void insert1(int data){Node newNode = new Node(data);Node curNode = head1;while (curNode.next!=null){curNode=curNode.next;}curNode.next=newNode;}public void insert2(int data){Node newNode = new Node(data);Node curNode = head2;while (curNode.next!=null){curNode=curNode.next;}curNode.next=newNode;}static class Node{public int value;public Node next;Node(int data){this.value=data;this.next=null;}}public void Plink(Node head1,Node head2){while (head1!=null&&head2!=null){if (head1.value<head2.value)head1=head1.next;else if (head1.value>head2.value)head2=head2.next;else{System.out.println(head1.value+" ");head1=head1.next;head2=head2.next;}}}public static void main(String[] args) {Lee lee = new Lee();lee.insert1(1);lee.insert1(3);lee.insert1(4);lee.insert2(4);lee.insert2(5);lee.insert2(6);lee.Plink(lee.head1, lee.head2);}
}
双向链表:一个节点=上个节点地址+本节点数据+下个节点地址
如:定义两个函数,实现在双向链表的头部及尾部插入节点
public class Lee {private Node head;Lee(){this.head= new Node(0);}public void insertHead(int data){Node newNode = new Node(data);newNode.next=head;head.pre=newNode;head=newNode;}public void insertTail(int data){Node newNode = new Node(data);Node current = head;while (current.next!=null){current=current.next;}current.next=newNode;newNode.pre=current;}public void printList(Node head) {Node current = head;// 从头到尾打印链表while (current != null) {System.out.print(current.value + " -> ");current = current.next;}System.out.println("null"); // 表示链表结尾}static class Node{public int value;public Node pre;public Node next;Node(int data){this.value=data;this.pre=null;this.next=null;}}public static void main(String[] args) {Lee lee = new Lee();lee.insertTail(2);lee.insertTail(3);lee.insertTail(4);lee.insertHead(4);lee.printList(lee.head);}
}
相关文章:
LinkedList和单双链表。
java中提供了双向链表的动态数据结构 --- LinkedList,它同时也实现了List接口,可以当作普通的列表来使用。也可以自定义实现链表。 单向链表:一个节点本节点数据下个节点地址 给定两个有序链表的头指针head1和head2,打印两个链表…...
AI与OCR:数字档案馆图像扫描与文字识别技术实现与项目案例
文末有免费工具可在线体验,或者网络搜索关键词“思通开源AI能力平台” 一、扫描与图像预处理 技术实现过程 在纸质档案的数字化过程中,首先需要使用高精度扫描仪对纸质文档进行扫描,生成高清的数字图像。这一步骤是整个OCR流程的基础…...
Spring boot 读模块项目升级为spring cloud 项目步骤以及问题
1.结构说明 bean 模块 ,public 模块, client 模块, erp模块,system 主模块。 2.环境说明以及pom 原本环境 新环境 mysql 5.7 -------------- mysql 8.0 maven 3.9.6 jdk 8 -----------…...
时序数据库之influxdb和倒排索引以及LSM-TREE
一、时序数据库的特点 1、时序数据库用作打点,用来做监控使用,属于写多读少的场景,而且由于时间不可逆,几乎不可能出现更新的操作。而且监控数据一般只会查询最近几分钟数据,冷热数据查询频率非常明显。因此非常贴合ES…...
如何避免消息的重复消费问题?(消息消费时的幂等性)
如何避免消息的重复消费问题 1、 消息的幂等性1.1、概念1.2、产生业务场景 2、全局唯一IDRedis解决消息幂等性问题2.1、application.yml配置文件2.2、生产者发送消息2.3、消费者接收消息2.4、pom.xml引入依赖2.5、RabbitConfig配置类2.6、启动类2.7、订单对象2.8、测试 1、 消息…...
【Java SE】类与对象
现实世界中,随处可见的一个事物实体就是对象,而类就是同一类事物(或对象)的统称,由一个类构造对象的过程称为创建这个类的一个实例(instance),即: 类(class&…...
基于springboot的公益服务平台的设计与实现
文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于springboot的公益服务平台的设计与实…...
Tomcat(6) 什么是Servlet容器?
Servlet容器是Java EE技术中的一个关键组件,它负责管理和执行Servlet。Servlet容器提供了运行时环境,使得Servlet能够接收和响应来自客户端的HTTP请求。以下是Servlet容器的详细解释,以及一些相关的代码示例。 Servlet容器的主要功能 加载和…...
用js去除变量里的html标签
要用 JavaScript 去除字符串中的 HTML 标签,你可以使用正则表达式。以下是一个简单的示例代码: function removeHTMLTags(str) {return str.replace(/<[^>]*>/g, ); }// 示例 var str <p>This is <b>bold</b> text with <…...
Vue3+element-plus摘要
1.如果自己电脑vue版本是vue2版本,下面将详细介绍如何在vue2版本基础上继续安装 vue3版本且不会影响vue2版本的使用 1-1 在c盘或者别的盘建一个文件夹vue3 1-2 在这个文件夹里使用WINR 打开终端 输入命令 npm install vue/cli 安装完即可 1-3 然后进入此文件夹中的n…...
Android Studio 将项目打包成apk文件
第一步:选择Build -> Generate Signed APK 会出现: 我们选择 Create new… 然后选择你要存放密钥的地方 点击ok之后,则选择好了文件,并生成了jks文件了。 点击ok之后, 会出现: 选择release…...
贪心算法day2(最长递增子序列)
目录 1.最长递增子序列 方法一:动态规划 方法二:贪心二分查找 1.最长递增子序列 链接:. - 力扣(LeetCode) 方法一:动态规划 思路:我们定义dp[i]为最长递增子序列,那么dp[j]就是…...
arcgis pro 学习笔记
二维三维集合在一起,与arcgis不同 一、首次使用,几个基本设置 1.选项——常规里面设置自动保存时间 2.新建工程文件,会自动加载地图,可以在选项里面设置为无,以提高启动效率。 3.设置缓存位置,可勾选每次…...
OpenGL 进阶系列06 - OpenGL变换反馈(TransformFeedback)
一:概述 变换反馈(Transform Feedback)是 OpenGL 中的一项技术,允许你将顶点着色器的输出(例如变换后的顶点数据)直接传输到缓冲区,而不是将结果渲染到屏幕上。它在图形计算中非常有用,尤其在粒子系统、模拟、几何处理等场景中,可以用来获取顶点处理的中间结果,并将其…...
elementUI 点击弹出时间 date-picker
elementUI的日期组件,有完整的UI样式及弹窗,但是我的页面不要它的UI样式,点击的时候却要弹出类似的日期选择器,那怎么办呢? 以下是elementUI自带的UI风格,一定要一个输入框来触发。 这是我的项目中要用到的…...
【浙江大学大模型系列】启真医疗大模型(国内大模型)
启真大模型是一款专注于医疗领域的AI大模型,它坚持“数据知识双轮驱动”的技术路线,通过大模型技术和医学知识库的紧密结合,致力于推动大模型技术在医疗行业的落地和应用实践。 启真大模型的特点在于其强大的数据整合能力和医学知识库的支持。…...
NestJS 项目中如何使用 class-validator 进行数据验证
前言 在现代Web开发中,数据验证是必不可少的一环,它不仅能够确保数据的准确性,还能提高系统的安全性。在使用NestJS框架进行项目开发时,class-validator与class-transformer这两个库为我们提供了方便的数据验证解决方案。 本文将…...
【AI抠图整合包及教程】Meta SAM2:引领图像和视频分割技术的新纪元
在人工智能的浪潮中,Meta公司再次以Segment Anything Model 2(SAM 2)引领了图像和视频分割技术的新纪元。SAM 2的发布不仅为计算机视觉领域的研究和发展注入了新的活力,还预示着这一技术将在多个行业中找到广泛的应用场景。这一创…...
小菜家教平台(三):基于SpringBoot+Vue打造一站式学习管理系统
目录 前言 今日进度 详细过程 相关知识点 前言 昨天重构了数据库并实现了登录功能,今天继续进行开发,创作不易,请多多支持~ 今日进度 添加过滤器、实现登出功能、实现用户授权功能校验 详细过程 一、添加过滤器 自定义过滤器作用&…...
ArcGIS/QGIS按掩膜提取或栅格裁剪后栅格数据的值为什么变了?
问题描述: 现有一栅格数据,使用ArcGIS或者QGIS按照矢量边界进行按掩膜提取或者栅格裁剪以后,其值的范围发生了变化,如下: 可以看到,不论是按掩膜提取还是进行栅格裁剪后,其值的范围均与原来栅…...
独立开发者如何利用Taotoken Token Plan套餐优化项目成本
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 独立开发者如何利用Taotoken Token Plan套餐优化项目成本 对于独立开发者或小型项目团队而言,在拥抱大模型能力的同时&…...
2026年网络安全行业发展全景解析(技术从业者必看)_最新网络行业发展锐评
2026年网络安全行业发展全景解析(技术从业者必看) 摘要:随着数字化转型进入深水区,AI、云原生、物联网等技术的普及,网络安全已从“辅助保障”升级为“核心刚需”。 一、行业发展现状:政策与市场双轮驱动&…...
V-REP/CoppeliaSim机器人仿真进阶:Graph模块3D轨迹可视化与数据导出实战解析
1. Graph模块基础与3D轨迹可视化原理 在机器人仿真中,轨迹可视化就像给机械臂装上了"运动摄像机"。V-REP/CoppeliaSim的Graph模块就是这个摄像机的核心部件,它能记录机械臂末端执行器在三维空间中的每一个细微动作。我刚开始用这个功能时&…...
百度网盘Mac版SVIP破解终极指南:解锁70倍下载速度的完整方案
百度网盘Mac版SVIP破解终极指南:解锁70倍下载速度的完整方案 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 百度网盘Mac版SVIP破解插件是一…...
NExT-GPT:端到端任意模态大模型架构解析与实战指南
1. 项目概述:当多模态大模型遇见“全感官”交互最近在和朋友聊起多模态大模型时,大家总绕不开一个话题:现有的模型,无论是GPT-4V还是Gemini,虽然能“看”能“说”,但总感觉少了点什么。它们更像是一个单向的…...
texgen.js扩展开发终极指南:如何自定义纹理生成器和滤镜
texgen.js扩展开发终极指南:如何自定义纹理生成器和滤镜 【免费下载链接】texgen.js JavaScript Texture Generator 项目地址: https://gitcode.com/gh_mirrors/te/texgen.js texgen.js 是一个功能强大的JavaScript纹理生成器库,它让开发者能够通…...
如何永久保存微信聊天记录?终极指南:从导出到年度报告完整流程
如何永久保存微信聊天记录?终极指南:从导出到年度报告完整流程 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHu…...
基于DocFX与CI/CD构建.NET私有NuGet包文档一体化管理方案
1. 项目概述与核心价值最近在整理团队内部的.NET技术资产时,我重新审视了一个看似简单但极其重要的仓库:abellobm3681/nuget-docs。这名字乍一看,可能很多人会以为又是一个NuGet官方文档的镜像或者翻译项目。但如果你深入进去,会发…...
BookGet 终极指南:一键下载全球50+图书馆古籍资源的完整教程
BookGet 终极指南:一键下载全球50图书馆古籍资源的完整教程 【免费下载链接】bookget bookget 数字古籍图书下载工具。 项目地址: https://gitcode.com/gh_mirrors/bo/bookget 在数字时代,古籍研究者和历史爱好者面临着一个共同挑战:如…...
用PyQt5给树莓派人脸门禁做个图形界面:从Qt Designer设计到移植上板的完整流程
树莓派人脸门禁系统GUI开发实战:从Qt设计到嵌入式部署的全链路解析 当硬件项目需要与用户交互时,一个直观的图形界面往往能大幅提升使用体验。本文将带您完整实现一个基于树莓派的人脸识别门禁系统GUI应用,涵盖从桌面端设计到嵌入式部署的全…...
