public class Main{
public static int getSucc(BSTNode node,int p){
if(node==null)return succ;
in(node,p);
return succ;
}
public void in(BSTNode node,int p){
if(node==null)return;
in(node.left,p);
if(pre==p){
if(succ!=-1){//之前已经找着
return;
}
succ=node.value;//p的后继为pre的右节点的值
}
pre=node.value;
in(node.right);
}
private static int succ=-1;
private static int pre=Integer.MIN_VALUE;//记录上一节点的值
}