题目描述
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
出处
思路
用队列存,每层之间用null隔开。
代码
cpp
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> result;
vector<int> temp;
vector<TreeNode*> queue;
if(!root) return result;
queue.push_back(root);
queue.push_back(nullptr);
int i=0;
while(i<queue.size()-1) {
if(!queue[i])
queue.push_back(nullptr);
else{
if(queue[i]->left) queue.push_back(queue[i]->left);
if(queue[i]->right) queue.push_back(queue[i]->right);
}
i++;
}
i=0;
while(i<queue.size()) {
if(!queue[i]) {
result.push_back(temp);
temp.clear();
}
else
temp.push_back(queue[i]->val);
i++;
}
return result;
}
};