Description:
题目大意:输出二叉树的层序遍历
解题思路:
算法标签:BFS
代码:
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
public:
vector<vector<int> > levelOrder(TreeNode* root) {
vector<vector<int> > ans;
if(root == NULL)
return ans;
queue<TreeNode* >tree;
// 存放相邻两层节点
tree.push(root);
while(!tree.empty()) {
// 存储一层的节点
vector<int>temp;
int len = tree.size();
for(int i = 0;i < len;i++) {
TreeNode* treenode = tree.front();
tree.pop();
temp.push_back(treenode -> val);
// 下一层入队
if(treenode -> left != NULL)
tree.push(treenode -> left);
if(treenode -> right != NULL)
tree.push(treenode -> right);
}
ans.push_back(temp);
}
return ans;
}
};