LeetCode Hot100 二叉树的层序遍历

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。

示例 1:

LeetCode Hot100 二叉树的层序遍历_第1张图片

输入:root = [3,9,20,null,null,15,7]
输出:[[3],[9,20],[15,7]]

示例 2:

输入:root = [1]
输出:[[1]]

示例 3:

输入:root = []
输出:[]
思路

        先入先出,用队列保存每层的节点,用保存的节点访问下一层。

代码
vector> levelOrder(TreeNode* root) {
    vector> res;
    if(root == nullptr)
        return res;
    queue q;
    q.push(root);
    while(!q.empty())
    {
        vector arr;
        int size = q.size();
        for(int i = 0;i < size;++i)
        {
            TreeNode* node = q.front();
            q.pop();
            if(node->left != nullptr)
                q.push(node->left);
            if(node->right != nullptr)
                q.push(node->right);
            arr.push_back(node->val);
        }
        res.push_back(arr);
    }
    return res;
}

你可能感兴趣的:(leetcode,leetcode,算法,职场和发展)