给你二叉树的根节点 root
,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
示例 1:
输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]]
示例 2:
输入:root = [1] 输出:[[1]]
示例 3:
输入:root = [] 输出:[]
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root)
{
vector<vector<int>>vv;
//queue<int>levelq;//记录每个节点是第几层的 另一种思路
queue<TreeNode*>q;
if(root)
{
q.push(root);
}
while(!q.empty())
{
//通过控制每一层的数据个数,一个循环一层数据一层数据出
//当第n层出完了,第n+1层都进队列了,q.size()就是n+1层的数据个数,循环再处理
int LevelSize =q.size();
vector<int> v;
for(size_t i=0;i<LevelSize;++i)
{
TreeNode*front=q.front();
q.pop();
v.push_back(front->val);
if(front->left)
q.push(front->left);
if(front->right)
q.push(front->right);
}
vv.push_back(v);
}
return vv;
}