关注
import java.util.*;
/**
* Created by jose on 2018/9/18.
*/
public class Red2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()){
String line = sc.nextLine();
String[] levelarr = line.split(" ");
List<Integer> level = new ArrayList<>();
for (int i = 0; i <levelarr.length; i++) {
level.add(Integer.valueOf(levelarr[i]));
}
line = sc.nextLine();
String[] midarr = line.split(" ");
int[] mid = new int[midarr.length];
for (int i = 0; i < midarr.length; i++) {
mid[i]= Integer.parseInt(midarr[i]);
}
boolean[] visited = new boolean[1024];
Node head = build(level,mid,visited,0,mid.length-1);
leaf(head);
System.out.println();
pre_visited(head);
System.out.println();
pos_visited(head);
}
}
static void leaf(Node node){
if(node==null) return;
if(node.left == null&&node.right==null) {
System.out.print(node.value+" ");
}
leaf(node.left);
leaf(node.right);
}
static void pre_visited(Node node){
if(node == null) return;
System.out.print(node.value+" ");
pre_visited(node.left);
pre_visited(node.right);
}
static void pos_visited(Node node){
if(node == null) return;
pos_visited(node.left);
pos_visited(node.right);
System.out.print(node.value+" ");
}
static class Node{
int value;
Node left;
Node right;
}
public static Node build(List<Integer> level,int[] mid,boolean[] visited,int left,int right){
if(level.size()==0) return null;
Node head = new Node();
head.value = level.get(0);
int pos=0;
for (int i = left; i <= right; i++) {
if (level.get(0) == mid[i]){
pos=i;
break;
}
}
int cleft = left;
int cright = pos-1;
for (int i = 0; i < 1024; i++) {
visited[i]=false;
}
for (int i = cleft; i <= cright; i++) {
visited[mid[i]] = true;
}
List<Integer> leftchild=new ArrayList<>();
List<Integer> rightchild=new ArrayList<>();
for (int i = 1; i < level.size(); i++) {
if(visited[level.get(i)]){
leftchild.add(level.get(i));
}else {
rightchild.add(level.get(i));
}
}
head.left=build(leftchild,mid,visited,left,cright);
head.right=build(rightchild,mid,visited,pos+1,right);
return head;
}
}
查看原帖
点赞 1
相关推荐

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 如何KTV领导 #
32222次浏览 260人参与
# 你投递的公司有几家约面了? #
39325次浏览 233人参与
# 掌阅春招 #
89195次浏览 517人参与
# 研究所笔面经互助 #
55212次浏览 395人参与
# 软开人,秋招你打算投哪些公司呢 #
67127次浏览 717人参与
# 生物制药/化工校招攻略 #
33882次浏览 265人参与
# 你遇到过哪些神仙同事 #
45443次浏览 432人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
72918次浏览 540人参与
# 硬件/芯片公司工作体验 #
58590次浏览 560人参与
# 如何缓解入职前的焦虑 #
141939次浏览 1129人参与
# TP-LINK工作体验 #
38614次浏览 787人参与
# 你最近一次加班是什么时候? #
32051次浏览 250人参与
# 软件开发春招备战日记 #
57841次浏览 496人参与
# Tplink求职进展汇总 #
102457次浏览 570人参与
# 考研人,我有话说 #
16098次浏览 293人参与
# vivo求职进展汇总 #
168008次浏览 1022人参与
# 在职场上,你最讨厌什么样的同事 #
10727次浏览 125人参与
# 产品每日一题 #
29178次浏览 406人参与
# 秋招白月光 #
52920次浏览 777人参与
# 过年最难忘的一件事 #
10880次浏览 155人参与
# 你今年的平均薪资是多少? #
94398次浏览 462人参与