关注
//自己重新写了一个Java的,按Ctrl-z可以结束,基本思路是用位图来实现快速发现根节点。然后
//多叉树的存储为链表结构
import java.io.*;
import java.util.*;
class Node {
int val;
Node child;
Node next;
Node(int v) {
val = v;
child = null;
next = null;
}
}
public class Build {
public static void myTraverse(Node root){
Node p = root;
//hierarchy traverse
while(p != null){
//cur root
System.out.print(p.val + " ");
//siblings
while(p.next != null){
System.out.print(p.next.val + " ");
p = p.next;
}
//child
if(p.child != null){
p = p.child;
}
else{
break;
}
}
}
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
//bitmap
//save every node
//find element quickly
Node[] arr = new Node[101];
for (int i = 0; i < 101; i++) {
arr[i] = null;
}
Node coreRoot = null;
int count = 0;
//Ctrl-z end input
while (in.hasNextLine()) {
String line = in.nextLine();
String strs[] = line.split("\\s+");
Node root = null;
for (int i = 0; i < strs.length; i++) {
int num = Integer.valueOf(strs[i]);
//cur root
if (i == 0) {
if (arr[num] == null) {
Node temp = new Node(num);
arr[num] = temp;
}
root = arr[num];
}
//this level siblings
else {
Node temp = null;
if (arr[num] == null) {
temp = new Node(num);
arr[num] = temp;
}
temp = arr[num];
Node p = root;
while (p.next != null) {
p = p.next;
}
p.next = temp;
}
}
//core root
if (count == 0) {
coreRoot = root;
}
count += 1;
}
myTraverse(coreRoot);
}
}
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 我的2024牛客高光时刻 #
102331次浏览 1554人参与
# 一人推荐一个机械人值得去的公司 #
379372次浏览 4092人参与
# 被同事甩锅了怎么办 #
16286次浏览 91人参与
# 贝壳求职进展汇总 #
13623次浏览 100人参与
# 京东求职进展汇总 #
588023次浏览 5077人参与
# bilibili求职进展汇总 #
40044次浏览 425人参与
# 我是XXX,请攻击我最薄弱的地方 #
7622次浏览 78人参与
# 提前批的机械人,你们都有面试了吗 #
85560次浏览 926人参与
# 找不到实习会影响秋招吗 #
1139604次浏览 12404人参与
# 机械人与华为的爱恨情仇 #
93388次浏览 840人参与
# 国央企薪资爆料 #
64871次浏览 490人参与
# 入职第三天,晒晒你的工位 #
20980次浏览 115人参与
# 你最希望上岸的公司是? #
95536次浏览 524人参与
# 牛客租房专区 #
26914次浏览 445人参与
# 找工作中的意难平 #
518397次浏览 5328人参与
# 金融财经春招备战日记 #
4251次浏览 38人参与
# 美的求职进展汇总 #
222247次浏览 1655人参与
# 你是如何准备春招的? #
15707次浏览 127人参与
# 你的房租占工资的比例是多少? #
17331次浏览 217人参与
# 那些拿到大厂offer的简历长啥样 #
190714次浏览 2977人参与