Java实现两个递增有序链表合并成一个递增有序链表和两个非递减有序链表合成一个非递增有序链表

代码如下:

package sjjgniub;import java.util.LinkedList;
import java.util.Scanner;@SuppressWarnings("all")
public class LinkList {private class Node{int data;Node next;public Node(){}public Node(int data){this.data = data;next = null;}}Node head = null;public LinkList(){head = new Node();if (head==null){System.out.println("Error");return;}head.next = null;}public void createList(int[] arr){Node p = head;for (int i = 0;i<arr.length;i++) {Node s = new Node(arr[i]);p.next = s;p = s;}}public void createList(){Scanner sc = new Scanner(System.in);int n = sc.nextInt();Node p = head;for (int i = 0;i<n;i++){int temp = sc.nextInt();Node s = new Node(temp);p.next = s;p = s;}}public void printList(){Node p = head.next;while(p!=null){System.out.print(p.data+" ");p = p.next;}System.out.println();}//判断是否为递增有序链表public boolean isSurge(LinkList L){if (L==null){return false;}else if (L.head.next==null){return true;}Node p = L.head.next;while(p.next!=null){if (p.next.data < p.data){return false;}p = p.next;}return true;}//将两个递增的有序链表合并为一个递增的有序链表public void mergeSurgeList(LinkList La){if (La==null){System.out.println("Error");return ;}if(!isSurge(La)){System.out.println("No surge");return ;}if (!isSurge(this)){System.out.println("No surge");return ;}Node pc = head;Node p1 = head.next;Node p2 = La.head.next;while(p1!=null && p2!=null){if (p1.data > p2.data){pc.next = p2;p2 = p2.next;pc = pc.next;}else if (p1.data < p2.data){pc.next = p1;p1 = p1.next;pc = pc.next;}else{pc.next = p1;p1 = p1.next;p2 = p2.next;pc = pc.next;}}if (p1==null && p2==null){pc.next = null;}else if (p1==null){pc.next = p2;}else if (p2==null){pc.next = p1;}La = null;}//将两个非递减的有序链表合并为一个非递增的有序链表public void mergeNotSurgeList(LinkList La){if (La==null){System.out.println("Error");return ;}if(!isSurge(La)){System.out.println("No surge");return ;}if (!isSurge(this)){System.out.println("No surge");return ;}Node pc = head;Node p1 = head.next;Node p2 = La.head.next;pc.next = null;while(p1!=null&& p2!=null){if (p1.data >= p2.data){Node tmp = p2.next;p2.next = pc.next;pc.next = p2;p2 = tmp;}else{Node tmp = p1.next;p1.next = pc.next;pc.next = p1;p1 = tmp;}}while(p2!=null){Node tmp = p2.next;p2.next = pc.next;pc.next = p2;p2 = tmp;}while(p1!=null){Node tmp = p1.next;p1.next = pc.next;pc.next = p1;p1 = tmp;}La = null;}}

测试类:

package sjjgniub;public class TestList {public static void main(String[] args) {LinkList linkList = new LinkList();int[] arr1 = {1,56,234,423,1000};linkList.createList(arr1);linkList.printList();LinkList linkList2 = new LinkList();int[] arr2 = {213,423,1000};linkList2.createList(arr2);linkList2.printList();System.out.println();//  linkList.mergeSurgeList(linkList2);linkList.mergeNotSurgeList(linkList2);linkList.printList();}
}

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

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

相关文章

职场PUA到底有多可怕?

阅读本文大概需要 5.2分钟。“小张&#xff0c;好好干啊&#xff0c;明年一定给你加薪&#xff01;” 。从小张入职这家公司起&#xff0c;这是老板对小张第三次这么说了。小张每天干到晚上12点&#xff0c;任劳任怨&#xff0c;虽然一直没涨过工资&#xff0c;但是老板的不断认…

SQL5 将查询后的列重新命名(数据库的几种去重方法)

牛客网题目 描述 题目&#xff1a;现在运营需要查看用户来自于哪些学校&#xff0c;请从用户信息表中取出学校的去重数据。 示例:user_profile 根据示例&#xff0c;你的查询应返回以下结果&#xff1a; 示例1 输入&#xff1a; drop table if exists user_profile; CREA…

数据结构与算法专题——第二题 优先队列

前段时间玩小爬虫的时候&#xff0c;我把url都是放在内存队列里面&#xff0c;有时我们在抓取url的时候&#xff0c;通过LCS之类的相似度比较&#xff0c;发现某些url是很重要的&#xff0c;需要后端解析服务器优先处理&#xff0c;针对这种优先级比较大的url&#xff0c;普通的…

SQL9 查找除复旦大学的用户信息(数据库否定语句写法)

描述 题目&#xff1a;现在运营想要查看除复旦大学以外的所有用户明细&#xff0c;请你取出相应数据 示例&#xff1a;user_profile 根据输入&#xff0c;你的查询应返回以下结果&#xff1a; 示例1 输入&#xff1a; drop table if exists user_profile; CREATE TABLE use…

SQL10 用where过滤空值练习

描述 题目&#xff1a;现在运营想要对用户的年龄分布开展分析&#xff0c;在分析时想要剔除没有获取到年龄的用户&#xff0c;请你取出所有年龄值不为空的用户明细数据。 示例&#xff1a;user_profile 根据输入&#xff0c;你的 查询应返回以下结果&#xff1a; 示例1 输入…

数据结构与算法专题——第一题 Bitmap算法

在所有具有性能优化的数据结构中&#xff0c;我想大家使用最多的就是hash表&#xff0c;是的&#xff0c;在定位查找场景上具有O(1)的常量时间&#xff0c;多么的简洁优美&#xff0c;但是在特定的场合下&#xff1a;①&#xff1a;对10亿个不重复的整数进行排序。②&#xff1…

Java阻止继承(sealed,permits)

阻止继承 正常情况下&#xff0c;只要某个class没有final修饰符&#xff0c;那么任何类都可以从该class继承。 从Java 15开始&#xff0c;允许使用sealed修饰class&#xff0c;并通过permits明确写出能够从该class继承的子类名称。 例如&#xff0c;定义一个Shape类&#xf…

SQL15 查看学校名称中含北京的用户(通配符使用)

描述 题目&#xff1a;现在运营想查看所有大学中带有北京的用户的信息&#xff0c;请你取出相应数据。 示例&#xff1a;用户信息表&#xff1a;user_profile 根据示例&#xff0c;你的查询应返回如下结果&#xff1a; 示例1 输入&#xff1a; drop table if exists user_p…

Telegraf和Grafana监控多平台上的SQL Server

问题SQL Server在很多企业中部署在多个平台上(Windows,Linux和Container)&#xff0c;需要一种能支持多平台的解决方案用于收集和展示相关的监控指标。我选择企业中比较流行的监控展示工具Grafana和监控指标收集工具Telegraf进行实现。这也是为了方便与企业中已经在存在监控平台…

Java 12 switch表达式新特性(->,yield)

switch表达式 使用switch时&#xff0c;如果遗漏了break&#xff0c;就会造成严重的逻辑错误&#xff0c;而且不易在源代码中发现错误。从Java 12开始&#xff0c;switch语句升级为更简洁的表达式语法&#xff0c;使用类似模式匹配&#xff08;Pattern Matching&#xff09;的…

Java 实例 - 队列(Queue)用法

队列是一种特殊的线性表&#xff0c;它只允许在表的前端进行删除操作&#xff0c;而在表的后端进行插入操作。 LinkedList类实现了Queue接口&#xff0c;因此我们可以把LinkedList当成Queue来用。 以下实例演示了队列&#xff08;Queue&#xff09;的用法&#xff1a; import…

每日一练(第一天)

1、交换机本质上是一种网桥 &#xff08;是&#xff09;。 分析&#xff1a; 网桥&#xff08;Bridge)也称为桥接器&#xff0c;是连接两个局域网的存储转发设备&#xff0c;用它可以使完全具有相同或相似体系结构网络系统的连接&#xff0c;这样不但能扩展网络的距离或范围&a…

酸吗?28岁程序员财务自由宣布退休!

财务自由是我们这代人的共同追求&#xff0c;有程序员28岁就做到了。近期的一条新闻就直接刷屏了&#xff0c;28岁今日头条程序员手握上亿期权宣布退休&#xff0c;引发一片羡慕嫉妒恨。履历如下&#xff1a;2008-2012就读于暨南大学政治与行政管理专业&#xff0c;自学编程。2…

Java Stack 类

Java Stack 类 栈是Vector的一个子类&#xff0c;它实现了一个标准的后进先出的栈。 堆栈只定义了默认构造函数&#xff0c;用来创建一个空栈。 堆栈除了包括由Vector定义的所有方法&#xff0c;也定义了自己的一些方法。 Stack() 除了由Vector定义的所有方法&#xff0c;自…

nuget 是如何还原包的

nuget 是如何还原包的Intro一直以来从来都只是简单的用 nuget 包&#xff0c;最近想折腾一个东西&#xff0c;需要自己搞一个 nuget 包的解析&#xff0c;用户指定 nuget 包的名称和版本&#xff0c;然后去解析对应的 nuget 包并添加引用到项目&#xff0c; 于是就想搞明白 nug…

linux技术笔记(常用命令)持续更新中。。。

文章目录1、Linux 下解压 .zip 和 .rar 文件2、 [Mac 终端命令大全](https://www.jianshu.com/p/3291de46f3ff)3、Maven环境本地仓库目录阿里云仓库镜像系统环境变量mac 配置环境变量&#xff0c;退出终端失效的问题1、Linux 下解压 .zip 和 .rar 文件 解压 .zip zip -r file…

iMovie使用技巧

iMovie使用技巧 学习视频&#xff1a; 流程笔记&#xff1a; J、k、l浏览片段 1、i 设置出点 2、o设置入点 3、剪辑阶段可直接拖动片段&#xff0c;浏览阶段f设置为喜欢&#xff0c;有一条绿色的线 4、不喜欢的素材可直接按delete&#xff0c;标记为不喜欢&#xff0c;有一条红…

使用Azure AD B2C为ASP.NET Core 设置登录/注册

一&#xff0c;引言上次关于Azure AD B2C 讲到一些概念&#xff0c;有介绍到&#xff0c;Azure AD B2C 也是一种身份验证的解决方案&#xff0c;但是它运行客户使用其首选的社交&#xff0c;企业或者本地账户标识对应用程序和API进行单一登录访问。同样&#xff0c;Azure AD B2…

safari浏览器的使用tips

前言&#xff1a;最近毕设&#xff0c;原有Windows电脑太卡&#xff0c;再加上用mac习惯了&#xff0c;就买了mac笔记本&#xff0c;最后还是safari好用&#xff0c;那就整理下我在使用中好用的快捷键或者小tips 文章目录截图截图 全屏截图 shiftcommand3 safari界面浮窗 shif…

使用 Azure Function 定时启动云 VM

点击上方蓝字关注“汪宇杰博客”导语微软 Azure 平台的 VM 可以做到定时自动关机&#xff0c;然而只有 DevTest Lab 服务中的 VM 能够定时开机&#xff0c;普通用途的 VM 还没有上线这个功能。但是没关系&#xff0c;我们可以曲线救国&#xff0c;通过最新版的 Azure Function …