【c++】leetcode102 二叉树的层序遍历

1.题目

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

【c++】leetcode102 二叉树的层序遍历_第1张图片

2.解答

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
 #include 

class Solution {
public:
    vector> levelOrder(TreeNode* root) {
        vector> res;
        if (!root) return res;

        queue q;
        q.push(root);
        while (!q.empty()) {
            vector s;
            int qsize = q.size();
            for (int i=0; ileft) {
                    q.push(q.front()->left);
                } 
                if (q.front()->right) {
                    q.push(q.front()->right);
                }
                s.emplace_back(q.front()->val);
                q.pop();
            }
            res.emplace_back(s);
        }
        return res;
    }
};

你可能感兴趣的:(#,c++,刷题专栏,c++,算法,数据结构)