难度: Medium
原题连接
内容描述
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。
例如:
给定二叉树: [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;
}