BST树的镜像翻转问题
所谓镜像翻转,即可以理解为以根节点为中心,将左右字数的值进行对调,具体原理图如下:
具体实现的代码如下:
/**
* BST树的镜像翻转问题
*/
public void mirror(){
mirror(root);
}
private void mirror(BSTNode<T> root){
if (root==null){
//根节点为空,直接返回
return;
}
BSTNode<T> left = root.getLeft();
//用left来存储原左子树的数据
root.setLeft(root.getRight());
//将右子树的数据赋值给左子树
root.setRight(left);
//将left中存储的数据赋值给右子树
mirror(root.getLeft());
mirror(root.getRight());
}