-
Notifications
You must be signed in to change notification settings - Fork 0
226_InvertBinaryTree
a920604a edited this page Apr 14, 2023
·
1 revision
- inorder traverse version
class Solution {
public:
TreeNode* invertTree(TreeNode* root) {
if(!root) return root;
// post-order
root->left = invertTree(root->left);
root->right = invertTree(root->right);
TreeNode* temp = root->left;
root->left = root->right;
root->right = temp;
return root;
}
};
- postorder traverse version
class Solution {
public:
TreeNode* invertTree(TreeNode* root) {
if(!root) return root;
root->left = invertTree(root->left);
root->right = invertTree(root->right);
TreeNode* temp = root->left;
root->left = root->right;
root->right = temp;
return root;
}
};
class Solution {
public:
TreeNode* invertTree(TreeNode* root) {
if(!root) return root;
queue<TreeNode * >q;
q.push(root);
while(!q.empty()){
int size = q.size();
while(size-- > 0){
TreeNode *p = q.front();
q.pop();
if(p->left) q.push(p->left);
if(p->right) q.push(p->right);
TreeNode *temp = p->left;
p->left = p->right;
p->right = temp;
}
}
return root;
}
};
- time complexity
O(n)
- space complexity
O(n)
footer