class Solution
{
public:
TreeNode* invertTree(TreeNode* root)
{
if(root == nullptr)//判空
{
return root;
}
queue que;//使用层序遍历,故使用队列
que.push(root);//先压入根节点
while(!que.empty())
{
int queSize = que.size();//获取每一层的节点数目
for(int i = 0; i < queSize; ++i)
{
if(!que.empty())
{
swap(que.front()->left, que.front()->right);//交换该节点的子节点
if(que.front()->left)//压入左子节点
{
que.push(que.front()->left);
}
if(que.front()->right)//压入右子节点
{
que.push(que.front()->right);
}
que.pop();//pop该节点,确保队列里只存放每一层的节点
}
}
}
return root;
}
};