0
点赞
收藏
分享

微信扫一扫

PTA 重建二叉树 java


题目链接:​​https://pintia.cn/problem-sets/1120858298571182080/problems/1120858729171013632​​

package pat树;
//ac
import java.util.Scanner;

public class Main87重建二叉树 {
static String a;
static String b;
static node root;
static int n;
public static node build(int pl,int pr,int il,int ir) {
if(il>ir)return null;
node jiedian=new node();
char v=a.charAt(pl);
jiedian.v=v;
int i;
for(i=0;i<=n;i++)if(b.charAt(i)==v)break;
int num=i-il;
jiedian.le=build(pl+1,pl+num,il,i-1);
jiedian.ri=build(pl+num+1,pr,i+1,ir);
return jiedian;
}
public static void print(node root) {
if(root!=null) {
print(root.le);
print(root.ri);
System.out.print(root.v);
}
}
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
while(in.hasNext()) {
a=in.next();
if(a.equals("EOF"))break;
b=in.next();
n=a.length()-1;
root=build(0,n,0,n);
print(root);
System.out.println();
}

}

}
class node{
char v;
node le;
node ri;
}

 

举报

相关推荐

0 条评论