输入描述
输入为两个字符串,分别为二叉树后续遍历和中序遍历
输出描述
输出二叉树的层次遍历结果
例如
输入
CBEFDA CBAEDF
输出
ABDCEF
import java.util.*;
public class Main{
public static int findSubString(String str1, String str2){
return str1.indexOf(str2.charAt(0));
}
public static class TreeNode{
String end_str;
String cent_str;
}
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
String end_list = scan.nextLine();
String center_list = scan.nextLine();
Queue<TreeNode> queue = new LinkedList<TreeNode>();
TreeNode node = new TreeNode();
node.end_str = end_list;
node.cent_str = center_list;
queue.offer(node);
while(!queue.isEmpty()){
TreeNode node1 = queue.poll();
if(node1.end_str.length() <= 1){
System.out.print(node1.end_str);
continue;
}
int pos = node1.end_str.length()-1;
String lastchar = node1.end_str.substring(pos);
System.out.print(lastchar);
String last_str = node1.end_str.substring(0, pos);
String[] p = node1.cent_str.split(lastchar);
if(p.length > 0){
for(int i = 0; i < p.length;i++){
TreeNode tmp = new TreeNode();
int index = findSubString(last_str, p[i]);
tmp.cent_str = p[i];
tmp.end_str = last_str.substring(index, p[i].length()+index);
queue.offer(tmp);
}
}
}
}
}