Leetcode(隊列)

Leetcode_102

層序遍歷

#include <iostream>
#include <vector>
#include <queue>
using namespace std;
struct TreeNode
{
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode(int x):val(x),left(NULL),right(NULL) {}
};
vector<vector<int>> levelOrder(TreeNode* root) {
    vector<vector<int>> res;
    if(root==NULL)
        return res;
    queue<pair<TreeNode*,int>> q;
    q.push(make_pair(root,0));
    while(!q.empty())
    {
        TreeNode *node = q.front().first;
        int level = q.front().second;
        q.pop();
        if(level == res.size())
            res.push_back(vector<int>());
        res[level].push_back(node->val);
        if(node->left)
            q.push(make_pair(node->left,level+1));
        if(node->right)
            q.push(make_pair(node->right,level+1));
    }
    return res;

}
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容