[剑指offer]二叉树的镜像

[剑指offer]二叉树的镜像

剑指offer-二叉树的镜像

题目描述

请完成一个函数,输入一个二叉树,该函数输出它的镜像。

例如

输入:
     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

解题思路
  • 交换根节点的左右子树
  • 递归镜像左子树和右子树
实现代码
class Solution {
public:
    TreeNode* mirrorTree(TreeNode* root) {        
        if(root==NULL)
            return root;
            
         /*交换左右子树*/
        TreeNode* temp = root->left;
        root->left = root->right;
        root->right = temp;
        
        mirrorTree(root->left);//镜像左子树
        mirrorTree(root->right);//镜像右子树
        return root;
    }
};

你可能感兴趣的:(剑指offer)