洛谷链接:https://www.luogu.com.cn/problem/P1827
题目啰里啰嗦,其实就是已知树的先序和中序遍历,求后序遍历
import java.util.Scanner;
public class Main {
static String a,b;
public static void end(int x,int y,int p,int q) { //x~y为前序遍历 p~q为中序遍历
if(x>y || p>q) {
return;
} else {
int i=b.indexOf(a.charAt(x)); //在中序队列中查找根节点的位置上
end(x+1,x+i-p,p,i-1); //递归左子树
end(x+i-p+1,y,i+1,q); //递归右子树
System.out.print(a.charAt(x));
}
}
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
b=in.next(); //中序遍历
a=in.next(); //先序遍历
int L=a.length()-1; //下标从0开始;
end(0,L,0,L);
}
}