递归实现合并两递增链表-合并后保持递增序列

硅谷探秘者 4334 0 0


递归实现合并两递增链表-合并后保持递增序列

java描述

数据结构:单链表

算法:递归

链表节点

package club.test;
/***
 * 链表节点
 * @author jiajia
 *
 */
public class Node {
	public int value;
	public Node next;
	public Node(int value, Node next) {
		super();
		this.value = value;
		this.next = next;
	}
}


算法实现

package club.test;
/**
 * 合并两个递增的链表
 * 合并后的链表保持递增序列
 * @author jiajia
 *
 */
public class TestMain {
	public static void main(String[] args) {
		Node list1=new Node(1,new Node(3,new Node(5,null)));
		//递增链表1
		Node list2=new Node(2,new Node(4,new Node(6,null)));
		//递增链表2
		Node n=Merge(list1, list2);
		//排序后的链表
		
		while(true) {
			if(n!=null) {
				System.out.print(n.value+" ");
				n=n.next;
				continue;
			}
			return;
		}
	}

	/**
	 * 核心算法
	 * @param list1 第一和递增链表
	 * @param list2 第二个递增链表
	 * @return 返回当前两个链表首节点最小的节点
	 */
	public static Node Merge(Node list1, Node list2) { 
		if (list1 == null) 
			return list2; 
		if (list2 == null) 
			return list1; 
		if (list1.value <= list2.value) { 
			list1.next = Merge(list1.next, list2); 
			return list1; 
		} else { 
			list2.next = Merge(list1, list2.next); 
			return list2; 
		} 
	}
}


案例输出:1 2 3 4 5 6



评论区
请写下您的评论...
暂无评论...
猜你喜欢
数据结构与算法 1244 算法思想该算法使用,思路为:每次将待排数组在中间位置分成左右组,分别对左右个数组进行的条件是数组长度必须大于等于3,所以当数组中只有个数据的时候可以直接进行比较排
数据结构与算法 2224 节点packageclub.test;/****节点*@authorjiajia**/publicclassNode{ publicintvalue; publicNodenext
数据结构与算法 4766 全排算法c++描述#includeiostreamusingnamespacestd;//交换voidexchange(int*a,inti,intj){if(i==j){return
weblog 989 mysql修改主键id自动初始值修改方法:执行sqlaltertable名AUTO_INCREMENT=初始值;例:altertableusersAUTO_INCREMENT=10000;
数据结构与算法 5017 整理二叉树的遍历-(法)和(非法)-笔记先遍历、中遍历、续遍历、层级遍历。1.节点信息:packagetree;publicclassNodeE{ privateEe;//数据域
数据结构与算法 7709 反转有一个单向t如下:t=1-2-3-4-5-6-7-8-9写一个方法反转t如下:1-2-3-4-5-6-7-8-9=tjava代码:packagetest;/*** 节点类
数据结构与算法 2626 ,已知最一次遇到的是花,他正好把酒喝光了。请你计算李白遇到店和花的次,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb就是理的次。像这样的答案一共有多少呢?请你计算出所有可能方案的
数据结构与算法 1712 代码:数组a是未排,已排的集是逻辑上的一个集,可以看作是head,是一个双向,add方法向集添加数据,每次找到对应的位置,使,toArray方法使已排的集输出成int数
归档
2018-11  12 2018-12  33 2019-01  28 2019-02  28 2019-03  32 2019-04  27 2019-05  33 2019-06  6 2019-07  12 2019-08  12 2019-09  21 2019-10  8 2019-11  15 2019-12  25 2020-01  9 2020-02  5 2020-03  16 2020-04  4 2020-06  1 2020-07  7 2020-08  13 2020-09  9 2020-10  5 2020-12  3 2021-01  1 2021-02  5 2021-03  7 2021-04  4 2021-05  4 2021-06  1 2021-07  7 2021-08  2 2021-09  8 2021-10  9 2021-11  16 2021-12  14 2022-01  7 2022-05  1 2022-08  3 2022-09  2 2022-10  2 2022-12  5 2023-01  3 2023-02  1 2023-03  4 2023-04  2 2023-06  3 2023-07  4 2023-08  1 2023-10  1 2024-02  1 2024-03  1
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo vue 导入导出 软件使用 idea插件 协议 无聊的知识 jenkins springboot mqtt协议 keepalived minio mysql ensp 网络基础 xxl-job rabbitmq haproxy srs 音视频 webrtc javascript
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。