102. Binary Tree Level Order Traversal
难度: Medium
刷题内容
原题连接
- https://leetcode-cn.com/problems/binary-tree-level-order-traversal/
内容描述
``` 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。
例如: 给定二叉树: [3,9,20,null,null,15,7],
3
/ \ 9 20 / \ 15 7 返回其层次遍历结果:
[ [3], [9,20], [15,7] ] ```
解题方案
思路 1
层次遍历
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> ans;
if(root==NULL)
return ans;
vector<TreeNode*> level;
level.push_back(root);
while(!level.empty()){
vector<TreeNode*> tmp;
vector<int> level_val;
for(int i=0;i<level.size();i++){
if(level[i]->left)
tmp.push_back(level[i]->left);
if(level[i]->right)
tmp.push_back(level[i]->right);
level_val.push_back(level[i]->val);
}
ans.push_back(level_val);
level = tmp;
}
return ans;
}