二叉树之广度优先遍历

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;
    }
};

 

posted on 2020-07-01 23:40  辉哥54110  阅读(356)  评论(0编辑  收藏  举报