/**
* 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) {
queue<TreeNode*> q;
vector<vector<int>> res;
if(root==NULL) return res;
int cur,next;
next = 0; //表示层数的方法1,可以再结构体中加入一个变量表示当前的层数
cur = 1;
q.push(root);
vector<int> tmp;
while(!q.empty()){
TreeNode *p = q.front();
q.pop();
cur--;
tmp.push_back(p->val);
if(p->left){
next++;
q.push(p->left);
}
if(p->right){
next++;
q.push(p->right);
}
if(cur==0){
res.push_back(tmp);
tmp.clear();
cur = next;
next = 0;
}
}
return res;
}
};
LeetCode level-order bfs
最新推荐文章于 2023-04-06 21:31:03 发布