从上往下打印二叉树

从上往下打印出二叉树的每个节点,同层节点从左至右打印。


对本题的理解是层序遍历二叉树。

用队列来保存二叉树的节点,先将树的根节点插入队列

当队列不为空时一直执行一下操作:

从队列中取出节点,将节点的值存入vector

若左子树不为空,将左子树插入队列

若右子树不为空,将右子树插入队列

class Solution {
public:
	vector PrintFromTopToBottom(TreeNode* root) {
		vectorresult;
		if (!root)return result;
		queueq;
		TreeNode* tmp;
		q.push(root);
		while (!q.empty())
		{
			tmp = q.front();
			q.pop();
			result.push_back(tmp->val);
			if (tmp->left)
				q.push(tmp->left);
			if (tmp->right)
				q.push(tmp->right);
		}
		return result;
	}
};

 

本文由 @崔任远[Vip] 发布于 职涯宝 ,未经作者许可,禁止转载,欢迎您分享文章

发表评论

登录后才能评论
小程序
小程序
微信客服
微信客服
QQ客服 建站服务
分享本页
返回顶部