给你二叉树的根节点 root
,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
示例 1:
输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]]
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>> ret;if(!root){return ret;}queue<TreeNode*> q;//存放节点的队列q.push(root);//在末尾加入一个元素while(!q.empty()){int n=q.size();//每一层的元素个数vector<int> cur;//记录每一层节点值的数组for(int i=0;i<n;i++){TreeNode* tmp=q.front();//返回第一个元素q.pop();//弹出第一个元素cur.push_back(tmp->val);if(tmp->left){q.push(tmp->left);}if(tmp->right){q.push(tmp->right);}}ret.push_back(cur);}return ret;}
};