力扣-226.翻转二叉树

前序遍历

class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        if(!root) return nullptr;
        swap(root->left, root->right);
        invertTree(root->left);
        invertTree(root->right);
        return root;
    }
};

中序遍历

class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        if(!root) return nullptr;
        invertTree(root->left);
        swap(root->left, root->right);
        // 这里需要特别注意,在这之前,左右结点已经交换了,所以右子树是 root->left
        invertTree(root->left);
        return root;
    }
};

你可能感兴趣的:(LeetCode,leetcode,算法,数据结构)