题目
Invert a binary tree.
4
/ \
2 7
/ \ / \
1 3 6 9
to
4
/ \
7 2
/ \ / \
9 6 3 1
反转一颗了二叉树
代码
一、层次遍历
TreeNode* invertTree(TreeNode* root) {
if(!root)
return root;
queue<TreeNode*> que;
que.push(root);
while(!que.empty()) {
TreeNode* top = que.front();
que.pop();
TreeNode* t = top->left;
top->left = top->right;
top->right = t;
if(top->left)
que.push(top->left);
if(top->right)
que.push(top->right);
}
return root;
}
二、递归
TreeNode* invertTree(TreeNode* root) {
if(!root)
return root;
TreeNode* t = root->left;
root->left = invertTree(root->right);
root->right = invertTree(t);
return root;
}