(写给未来遗忘的自己)
题目:
代码:
class Solution {
public:
TreeNode* invertTree(TreeNode* root) {
TreeNode* result;
std::queue<TreeNode*>node_que;
if(root==nullptr) return result;
result=root;
node_que.push(result);
while(!node_que.empty()){
TreeNode *node_d=node_que.front();
node_que.pop();
if(node_d->left!=nullptr) node_que.push(node_d->left);
if(node_d->right!=nullptr) node_que.push(node_d->right);
swap(node_d->left,node_d->right);
}
return result;
}
};
思路和知识点:
在队列中每次取到一个树的时候就交换左右子树。
swap(root->left,root->right)
这个操作是交换root左右节点的指针。