题目描述:
操作给定的二叉树,将其变换为源二叉树的镜像。
二叉树的镜像定义:源二叉树
8
/ \
6 10
/ \ / \
5 7 9 11
镜像二叉树
8
/ \
10 6
/ \ / \
11 9 7 5
解题思路:
- 该题要求将一棵树变为其源二叉树的镜像,也就是将二叉树每一个节点的左子树变为其右子树
- 说到交换我们最直接想到的就是使用temp临时变量来做到交换,所以我们首先用递归找到二叉树最右边的节点,然后将右节点值赋值给左节点,之后找到这个节点的左节点再赋值给右节点便好
解题代码:
function Mirror(root)
{
// write code here
if(!root) return null;
let temp = root.left;
root.left = Mirror(root.right);
root.right = Mirror(temp);
return root; // 注意这里一定要有返回值
}