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

  • 请完成一个函数,输入一个二叉树,该函数输出它的镜像。
  • 例如输入:
       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,递归借宿
只要该节点有左叶子节点或者右叶子节点,即需要交换叶子节点的位置
最后递归处理左右子节点

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容