[leetcode_226]Invert Binary Tree

镜像二叉树,其实就是对二叉树的后序遍历+交换左右子节点。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
class Solution {
public:
    void swap(TreeNode & left, TreeNode *& right)
    {
        TreeNode * tmp = left;
        left = right;
        right = tmp;
    }
    TreeNode * invertTree(TreeNode* root) {
        if (root == NULL)
            return NULL;
        if (root->left != NULL)
            invertTree(root->left);
        if (root->right != NULL)
            invertTree(root->right);
        swap(root->left, root->right);
        return root;
    }
};
Licensed under CC BY-NC-SA 4.0