版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/N1neDing/article/details/83034084
题目描述:
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
解题思路:
广度优先搜索,BFS很多时候需要借助队列存储元素
本题使用一个队列,每次记录队列首部的元素值,然后将左右节点插入到队列尾部,这样就可以实现树的层次遍历了。
参考源码:
class Solution {
public:
vector<int> PrintFromTopToBottom(TreeNode* root)
{
vector<int> res;
deque<TreeNode*> storage;
if(root == NULL) return res;
storage.push_back(root);
while(storage.size())
{
res.push_back(storage.front()->val);
if(storage.front()->left != NULL)
{
storage.push_back(storage.front()->left);
}
if(storage.front()->right != NULL)
{
storage.push_back(storage.front()->right);
}
storage.pop_front();
}
return res;
}
};