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

硅谷探秘者 3511 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


猜你喜欢
数据结构与算法 386 算法思想该算法使用,思路为:每次将待排数组在中间位置分成左右组,分别对左右个数组进行的条件是数组长度必须大于等于3,所以当数组中只有个数据的时候可以直接进行比较排
数据结构与算法 1240 节点packageclub.test;/****节点*@authorjiajia**/publicclassNode{ publicintvalue; publicNodenext
数据结构与算法 3906 全排算法c++描述#includeiostreamusingnamespacestd;//交换voidexchange(int*a,inti,intj){if(i==j){return
weblog 232 mysql修改主键id自动初始值修改方法:执行sqlaltertable名AUTO_INCREMENT=初始值;例:altertableusersAUTO_INCREMENT=10000;
数据结构与算法 4089 整理二叉树的遍历-(法)和(非法)-笔记先遍历、中遍历、续遍历、层级遍历。1.节点信息:packagetree;publicclassNodeE{ privateEe;//数据域
数据结构与算法 6864 反转有一个单向t如下:t=1-2-3-4-5-6-7-8-9写一个方法反转t如下:1-2-3-4-5-6-7-8-9=tjava代码:packagetest;/*** 节点类
数据结构与算法 1226 ,已知最一次遇到的是花,他正好把酒喝光了。请你计算李白遇到店和花的次,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb就是理的次。像这样的答案一共有多少呢?请你计算出所有可能方案的
数据结构与算法 468 代码:数组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
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo
目录