问题描述:java
输入一颗二元查找树,将该树转换为它的镜像树,即对每个节点,互换左右子树。spa
例如输入:code
6
/ \
4 12
/ \ / \
2 5 8 16orm
输出:it
6
/ \
12 4
/ \ / \
16 8 5 2class
分析:
定义二叉查找树节点:margin
class BSTreeNode{ BSTreeNode(int x, BSTreeNode lt, BSTreeNode rt){ value = x; left = lt; right = rt; } int value; BSTreeNode left; BSTreeNode right; }
代码实现:top
public void mirrorChange(){ mirrorChange(root); } public void mirrorChange(BSTreeNode n){ if(n == null){ return; } if(n.left != null){ mirrorChange(n.left); } if(n.right != null){ mirrorChange(n.right); } BSTreeNode tmp = n.left; n.left = n.right; n.right = tmp; }