226. 翻转二叉树

发布时间 2023-04-02 20:16:35作者: xiazichengxi

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。

class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        if(root==nullptr) return nullptr;
        else{
            TreeNode *node = root->left;
            root->left = root->right;
            root->right = node;
        }
        root->left = invertTree(root->left);
        root->right = invertTree(root->right);
        return root;
    }
    TreeNode* invertTree(TreeNode* root) {
        if (root == NULL) return root;
        stack<TreeNode*> st;
        st.push(root);
        while(!st.empty()) {
            TreeNode* node = st.top();              // 中
            st.pop();
            swap(node->left, node->right);
            if(node->right) st.push(node->right);   // 右
            if(node->left) st.push(node->left);     // 左
        }
        return root;
    }
};