标签:size lan push while 二叉树 code c++ load info
就是层序遍历,一层层扫下去,然后通过队列去实现,一个队列先暂存这一层的所有结点,然后另一个队列通过push_back
的方式,实现从左到右的访问。
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
// 设置辅助队列, 暂时存放一层结点
queue<TreeNode*> que;
if(root != NULL) que.push(root);
// 存放最终答案
vector<vector<int>> ans;
while(!que.empty()){
int size = que.size();
// 存放输出
vector<int> vec;
// 依次遍历辅助队列暂存的这一层的所有结点
for(int i=0; i < size; i++){
TreeNode* node = que.front();
que.pop();
// 从左到右的输出
vec.push_back(node->val);
// 存放下一层的结点
if(node->left) que.push(node->left);
if(node->right) que.push(node->right);
}
ans.push_back(vec);
}
return ans;
}
};
就很常见,没有啥新想法。
标签:size lan push while 二叉树 code c++ load info
原文地址:https://www.cnblogs.com/lzyrookie/p/14624540.html