首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >计蒜客:顺序合并两个非有序的链表(Java实现)

计蒜客:顺序合并两个非有序的链表(Java实现)

作者头像
静谧星空TEL
发布2021-04-27 09:38:54
发布2021-04-27 09:38:54
5730
举报

题目描述

给定由整数组成的两个无序数组,根据顺序合并成一个数组。

输入包括两行,每行由若干个由->分隔的整数组成,分别表示以最左整数为链表头,单向指向右侧节点的链表,每行输入均以 .结尾。

输出为合并后的单向链表,由->表示其间的指针,最终指向由NULL表示的空值。

在合并过程中,比较两个链表当前待合并的第一个元素,选择其中较小的那个元素放入合并后的数组。

输入格式

输入两行字符串,每行字符串由 有符号整数、->.组成。

输出格式

输出一行字符串,表示合并后的数组。

样例输入

代码语言:javascript
复制
1->2->3.
1->0->2.

样例输出

代码语言:javascript
复制
1->1->0->2->2->3->NULL

实现代码 

代码语言:javascript
复制
import java.util.Scanner;

public class Main {

	static StringBuilder s = new StringBuilder();

	public static void main(String[] args) {
		core();
	}

	public static void core() {
		Scanner sc = new Scanner(System.in);
		String s1 = sc.nextLine();
		String s2 = sc.nextLine();
		sc.close();
		String[] str1 = s1.substring(0, s1.length() - 1).split("->");
		String[] str2 = s2.substring(0, s2.length() - 1).split("->");
		int minlength = str1.length < str2.length ? str1.length : str2.length;
		int maxlength = str1.length > str2.length ? str1.length : str2.length;
		for (int i = 0; i < minlength; i++) {
			if (Integer.parseInt(str1[i]) < Integer.parseInt(str2[i])) {
				s.append(str1[i] + "->");
				s.append(str2[i] + "->");
			} else {
				s.append(str2[i] + "->");
				s.append(str1[i] + "->");
			}
		}
		if (minlength == maxlength) {
			System.out.println(s.append("NULL"));
		}else {
			for(int i=minlength;i");
				}else {
					s.append(str2[i] + "->");
				}
			}
			System.out.println(s.append("NULL"));
		}
	}
}

运行结果

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/04/21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档