门店管理系统app,seo整站优化新站快速排名,我要学电脑哪里有短期培训班,购物网站后台模板下载今日份题目#xff1a;
从上到下按层打印二叉树#xff0c;同一层的节点按从左到右的顺序打印#xff0c;每一层打印到一行。
示例
例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7
返回其层次遍历结果#xff1a; [ [3], […今日份题目
从上到下按层打印二叉树同一层的节点按从左到右的顺序打印每一层打印到一行。
示例
例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7
返回其层次遍历结果 [ [3], [9,20], [15,7] ]
提示
1. 节点总数 1000
题目思路
与上篇文章I中说的方法一样都是使用BFS广度优先遍历对树进行层次遍历与I不同处在于同层需要在一行vector中由于队列中存在的元素是同一行的所有元素所以每次对队列操作的时候先插入一个空行vector然后在这个空行中放入同层元素。队列为空时操作结束返回结果vector。
代码
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution
{
public:vectorvectorint levelOrder(TreeNode* root) {vectorvectorint ans;if(rootNULL) return {};queueTreeNode* p;//BFSp.push(root);while(!p.empty()){int np.size();ans.push_back(vectorint ());for(int i0;in;i){TreeNode* curp.front();p.pop();ans.back().push_back(cur-val);if(cur-left) p.push(cur-left);if(cur-right) p.push(cur-right);} }return ans;}
};
提交结果 欢迎大家在评论区讨论如有不懂的代码部分欢迎在评论区留言