leetcode Binary Tree Level Order Traversal

来源:互联网 发布:贾敏 知乎 编辑:程序博客网 时间:2024/05/18 00:56

这个题目里面出现了一个比较大的问题就是二维的vector没有初始化的时候你如果使用它就会出现问题。

eg vector<vector<int>> ans;

ans[0].push_back(1);


this is the wrong type, because you still don't have the ans[0];

pay attention here.

/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * };*/class Solution {public:    vector<vector<int> > levelOrder(TreeNode *root) {    vector<vector<int>> ans;    if(root == NULL)        return ans;    int count = 1;//count is the number of each layer    //two     queue<TreeNode *> q;    q.push(root);    vector<int> cur(0);    while(!q.empty())    {        cur.clear();        int tmp = 0;        for(int i = 0;i< count;i++)        {            root = q.front();            cur.push_back(root->val);            q.pop();            if(root->left!= NULL)            {                q.push(root->left);                tmp++;            }            if(root->right!= NULL)            {                q.push(root->right);                tmp++;            }                }        count = tmp;//sb clear your mind and focus on the logic        ans.push_back(cur);    }    return ans;    }};

0 0
原创粉丝点击