因为代码太长,所以链接在这里-> http://pastebin.com/jXgbE6bB
因为我不擅长递归,所以我找不到适合这个问题的递归函数。
(PSI 是这个论坛的新手,我知道我会有很多讨厌的评论,比如为什么不去找关于递归和其他事情的教程,但相信我,我已经做了所有事情,但我就是无法理解递归)
我的问题是二叉搜索树中给定元素的有序后继的递归函数是什么?
我做到了这一点,但它只是返回它应该打印的节点的父节点:
public E getSuccessor(BNode<E> t, E x) {
if(t.left!=null && x.equals(t.info)){
return t.left.info;
}
else if(x.compareTo(t.info)<0){
return (getSuccessor(t.left, x));
}
else {
return (getSuccessor(t.right, x));
}
}
public E getSuccessor(E x) {
return getSuccessor(root, x);
}