美文网首页
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