标签:层遍历 next queue 入队 back pop solution time run
一、题目说明
题目102. Binary Tree Level Order Traversal,给一个二叉树,返回按层遍历的各节点,每层返回一个数组。
二、我的解答
这个题目是普通的二叉树按层遍历,没什么难度。代码如下:
class Solution{
public:
vector<vector<int>> levelOrder(TreeNode* root){
vector<vector<int>> r;
TreeNode* p;
if(root ==NULL) return r;
queue<TreeNode*> q;
q.push(root);
int curLevelNum = 1,nextLevelNum=0;
while(! q.empty()){
//出队列
vector<int> cur;
for(int i=0;i<curLevelNum;i++){
p = q.front();
cur.push_back(p->val);
q.pop();
//入队列
if(p->left !=NULL){
q.push(p->left);
nextLevelNum++;
}
if(p->right !=NULL){
q.push(p->right);
nextLevelNum++;
}
}
curLevelNum = nextLevelNum;
nextLevelNum = 0;
r.push_back(cur);
}
return r;
}
};
性能如下:
Runtime: 8 ms, faster than 60.42% of C++ online submissions for Binary Tree Level Order Traversal.
Memory Usage: 13.8 MB, less than 90.14% of C++ online submissions for Binary Tree Level Order Traversal.
三、优化措施
不再做任何优化了。
刷题102. Binary Tree Level Order Traversal
标签:层遍历 next queue 入队 back pop solution time run
原文地址:https://www.cnblogs.com/siweihz/p/12266335.html