题解 | #求二叉树的层序遍历#
求二叉树的层序遍历
https://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3
方法:辅助队列
层序遍历本质就是广度优先搜索(BFS),通过构建辅助队列可以很好的得到二叉树的层序遍历。
时间复杂度:o(n)
空间复杂度:o(n)
class Solution { public: vector<vector<int> > levelOrder(TreeNode* root) { vector<vector<int> > res; if (root == nullptr) return res; queue<TreeNode*> q; q.push(root); while (!q.empty()) { vector<int> temp; int length = q.size(); for (int i = 0; i < length; i++) { temp.push_back(q.front()->val); //结点不为空时才写入 if (q.front()->left) q.push(q.front()->left); if (q.front()->right) q.push(q.front()->right); q.pop(); } res.push_back(temp); } return res; } };
刷题题解(c++) 文章被收录于专栏
算法题题解(c++)