您的位置:首页 > 编程语言 > Java开发

java 二叉树(八)获取右子树中的最小节点

2016-07-06 18:47 225 查看
//获取右子树中的最小节点
public Node minRightNode(Node node){//传入参数为被删除节点的右孩子Node node
if(node.getLeftChild()==null){
return null;
}
if(node.getLeftChild().getLeftChild()==null){
if(node.getLeftChild().getRightChild()!=null){
/*
* 如果被删除的节点有右孩子,需要用被删除节点的父节点的左孩子指向被删除结点的右孩子,
* 然后再把被删除节点的右孩子指向设为null,那么需要删除的节点就被删掉了
* 意思就是把    D  删除,把A指向C
* 		A
*     / \
*    D   B
* 	   \
* 	    C
*/
Node temp=node.getLeftChild();
node.setLeftChild(node.getLeftChild().getRightChild());
//node.getRightChild().setLeftChild(null);
temp.setRightChild(null);
return  temp;
}
Node temp=node.getLeftChild();
node.setLeftChild(null);
return temp;
}

return minRightNode(node.getLeftChild());
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息