关注
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
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客2025仙途报告 #
4288次浏览 126人参与
# 礼物开箱Plog #
1533次浏览 69人参与
# 2025年终总结 #
177263次浏览 2997人参与
# 工作两年,想和老板谈涨薪怎么说 #
38785次浏览 175人参与
# 你面试体验感最差/最好的公司 #
22123次浏览 361人参与
# 秋招落幕,你是He or Be #
15504次浏览 286人参与
# 一人说一个提前实习的好处 #
13927次浏览 227人参与
# 考公VS就业,你怎么选? #
88100次浏览 497人参与
# 今年你最想重开的一场面试是? #
5632次浏览 74人参与
# 离家近房租贵VS离家远但房租低,怎么选 #
13684次浏览 130人参与
# 重来一次,你会对开始求职的自己说 #
6886次浏览 173人参与
# 找工作,行业重要还是岗位重要? #
85780次浏览 1699人参与
# 实习没事做是福还是祸? #
18746次浏览 272人参与
# 机械制造秋招总结 #
97352次浏览 878人参与
# 职场新人体验 #
156928次浏览 1121人参与
# 工作中听到最受打击的一句话 #
8169次浏览 129人参与
# 团建是“福利”还是是 “渡劫” #
8087次浏览 160人参与
# 反问环节如何提问 #
126453次浏览 2669人参与
# 移动求职进展汇总 #
17916次浏览 143人参与
# 比亚迪线下宣讲会 #
17177次浏览 50人参与
