题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
样例
二叉树的镜像定义:源二叉树
8
/ \
6 10
/ \ / \
5 7 9 11
镜像二叉树
8
/ \
10 6
/ \ / \
11 9 7 5
思路分析
1.获取当前节点,左节点和右节点交换顺序
2.对左节点和右节点也进行同样的操作
3.返回调整好顺序的节点
4.终止条件root==null
代码
public void Mirror(TreeNode root) { if (root == null) { //边界条件 为空则无镜像的说法 return; } if (root.left==null && root.right==null) { return; } TreeNode temp = root.left; //定义中间变量 交换左右子树 root.left = root.right; root.right = temp; if (root.left != null) { //递归完成对树的遍历 Mirror(root.left); } if (root.right != null) { Mirror(root.right); } }
结果