後継を求める(親ノード付き)
見出し
package _8 ;
/**
* , ( )。
*
*/
/* parent */
public class _4_6Successor0 {
public TreeNode<Integer>findSuccessor(TreeNode<Integer>node){
if(node==null)
return null;
if(null!=node.right) {
//
return minOfRight(node.right);
}else {
//
TreeNode<Integer>p=node;//
while(p.parent!=null&&p==p.parent.right) {
p=p.parent;
}
return p.parent;
}
}
private TreeNode<Integer> minOfRight(TreeNode<Integer> right) {
// TODO Auto-generated method stub
TreeNode <Integer>p=right;
while(p.left!=null) {
p=p.left;
}
return p;
}
}