1.题目地址
2.题目描述
请完成一个函数,输入一个二叉树,该函数输出它的镜像。
例如输入:
4
/ \
2 7
/ \ / \
1 3 6 9
镜像输出:4
/ \
7 2
/ \ / \
9 6 3 1示例 1:
输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]
限制:
0 <= 节点个数 <= 1000
注意:本题与主站 226 题相同:https://leetcode-cn.com/problems/invert-binary-tree/
3.思路
使用递归,因为mirrorTree方法返回类型为树结点,首先定义一个结点rightNode存放root的右孩子,定义一个leftNode存放root的左孩子。同时递归该结点下的所有孩子结点。然后将root.left赋值为原先的右孩子,将root.right赋值leftNode,也就是左右结点互换。递归直到root为空结束。
力扣图示
4.代码
public TreeNode mirrorTree(TreeNode root) {
if (root == null) {
return null;
}
TreeNode rightNode = mirrorTree(root.right);
TreeNode leftNode = mirrorTree(root.left);
root.left = rightNode;
root.right = leftNode;
return root;
}