题解 | #求二叉树的层序遍历#
求二叉树的层序遍历
https://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * }; */ #include <queue> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return int整型vector<vector<>> */ vector<vector<int> > levelOrder(TreeNode* root) { // write code here vector<vector<int> >res; queue<TreeNode*> t; if(root)t.push(root); while(!t.empty()) { auto t1 =new queue<TreeNode*>(); auto r = new vector<int>(); while (!t.empty()) { TreeNode* f = t.front(); if(f->left)t1->push(f->left); if(f->right)t1->push(f->right); r->push_back(f->val); t.pop(); } res.push_back(*r); t=*t1; } return res; } };