这是第一次自己写层次遍历,花了半个小时吧,有很多不足
例如我对于队列每一层的循环,就显得一点智慧没有
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector<int>temp_val;
vector<vector<int>>result;
queue<TreeNode* > q;
TreeNode* temp;
q.push(root);
int num_1 = 1;
int num_2 = 0;
if(root == nullptr){
return result;
}
while(!q.empty()){
if(num_1==0){
num_1 = num_2;
num_2 = 0;
result.push_back(temp_val);
temp_val.clear();
}
temp = q.front();
temp_val.push_back(temp->val);
q.pop();
num_1--;
if(temp->left!=nullptr){
q.push(temp->left);
num_2++;
}
if(temp->right!=nullptr){
q.push(temp->right);
num_2++;
}
// cout<<num_2;
}
result.push_back(temp_val);
return result;
}
};