二叉树之广度优先遍历
1 广度优先遍历
广度优先遍历就是层次遍历,使用队列完成遍历。
遍历思路:
出队一个节点,便要入队其左右子节点;
最终队列为空,也就完成了层次遍历。
2 代码
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> V;
if(root == NULL)
return V;
queue<TreeNode*> Q;
Q.push(root);
while(Q.size() != 0)
{
int l = Q.size();
vector<int> temp;
for(int i = 0; i < l; i++)
{
TreeNode* head = Q.front();
temp.push_back(head -> val);
Q.pop();
if(head -> left != NULL) Q.push(head -> left);
if(head -> right != NULL) Q.push(head -> right);
}
V.push_back(temp);
}
return V;
}
};