- 请完成一个函数,输入一个二叉树,该函数输出它的镜像。
- 例如输入:
4
/ \
2 7
/ \ / \
1 3 6 9
- 镜像输出:
4
/ \
7 2
/ \ / \
9 6 3 1
- 来源:力扣(LeetCode)
- 链接:https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof
- 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路
需要获得树的镜像,只需要将节点的左右节点互换即可
这边直接使用递归,替换即可
实现
public TreeNode mirrorTree(TreeNode root) {
if (root == null) {
return null;
}
if (root.left != null || root.right != null) {
TreeNode temp = root.left;
root.left = root.right;
root.right = temp;
}
mirrorTree(root.right);
mirrorTree(root.left);
return root;
}
如果当前节点为null,递归借宿
只要该节点有左叶子节点或者右叶子节点,即需要交换叶子节点的位置
最后递归处理左右子节点
网友评论