关注
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
相关推荐
11-24 10:56
门头沟学院 搜索算法 点赞 评论 收藏
分享
10-30 16:31
重庆大学 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你想跟着什么样领导? #
4963次浏览 78人参与
# 什么样的背景能拿SSP? #
117079次浏览 410人参与
# 百度秋招 #
55745次浏览 394人参与
# 找实习是选平台还是选业务? #
9788次浏览 145人参与
# 你的秋招白月光和意难平公司 #
6328次浏览 71人参与
# 从夯到拉,评价编程语言 #
4754次浏览 48人参与
# 分享一个让你热爱工作的瞬间 #
47253次浏览 412人参与
# 秋招签约后的心态变化 #
105872次浏览 923人参与
# 职场吐槽大会 #
289508次浏览 2111人参与
# 每个月花钱最多的地方是? #
4943次浏览 72人参与
# xxx岗位的一天 #
9577次浏览 90人参与
# 作业帮求职进展汇总 #
77315次浏览 519人参与
# 十一月总结 #
12833次浏览 143人参与
# 你面试时吹过最大的牛 #
19645次浏览 113人参与
# 为什么国企只招应届生 #
218244次浏览 1262人参与
# 饿了么求职进展汇总 #
80111次浏览 684人参与
# 非技术求职现状 #
549223次浏览 3509人参与
# 实习学到最有价值的工作习惯 #
43427次浏览 378人参与
# 韶音科技求职进展汇总 #
64785次浏览 510人参与
# AI“智障”时刻 #
5791次浏览 51人参与
# 实习生如何通过转正 #
111561次浏览 1421人参与
美的集团公司福利 766人发布
