226. 翻转二叉树

226. 翻转二叉树,第1张

226. 翻转二叉树
  • 使用队列进行层序遍历,对每一层的节点进行交换
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;
	}
};

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5520915.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存