美文网首页
LeetCode 剑指 Offer 27. 二叉树的镜像

LeetCode 剑指 Offer 27. 二叉树的镜像

作者: fanxcv | 来源:发表于2021-08-31 22:24 被阅读0次
  • 请完成一个函数,输入一个二叉树,该函数输出它的镜像。
  • 例如输入:
       4
     /   \
    2     7
   / \   / \
  1   3 6   9
  • 镜像输出:
       4
     /   \
    7     2
   / \   / \
  9   6 3   1

思路

需要获得树的镜像,只需要将节点的左右节点互换即可
这边直接使用递归,替换即可

实现

    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,递归借宿
只要该节点有左叶子节点或者右叶子节点,即需要交换叶子节点的位置
最后递归处理左右子节点

相关文章

网友评论

      本文标题:LeetCode 剑指 Offer 27. 二叉树的镜像

      本文链接:https://www.haomeiwen.com/subject/dhrtwltx.html