leetcode 每日一题 102. Binary Tree Level Order Traversal
来源:互联网 发布:car软件 编辑:程序博客网 时间:2024/05/22 17:34
一道BFS的题目,也就是层次遍历并输出。由于用的是vector套vector的结构,需要预先定义好,可以用push_back直接存进去
相当于又默写了一遍,还有很多地方不完善,详见注释:
class Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>> res; //一个存储返回值结果 vector<int> level; //用于存储每一层的节点的值 if(root==NULL) return res; queue<TreeNode*> q; //用于广度遍历时存储节点 记住类型是TreeNode TreeNode* node; int currlev=1; int nextlev=0; q.push(root); while(!q.empty()){ node=q.front(); //这句话少了 q.pop(); currlev--; level.push_back(node->val); if(node->left){ q.push(node->left); nextlev++; } if(node->right){ q.push(node->right); nextlev++; } if(currlev==0){ res.push_back(level); //nextlev--; currlev=nextlev; nextlev=0; //直接置为0 开始下一层 level.clear(); } } return res; }};
还有一个比较好的递归的算法,原文地址如下:
https://leetcode.com/discuss/81916/clean-recursive-c-solution
class Solution {private: vector<vector<int>> abc;public:void helper(TreeNode* root, int level) { if(abc.size() < level+1) abc.push_back(vector<int>(1,root->val)); else abc[level].push_back(root->val); if(root->left) helper(root->left,level+1); if(root->right) helper(root->right,level+1);}vector<vector<int>> levelOrder(TreeNode* root) { if(root) helper(root,0); return abc; }
0 0
- leetcode 每日一题 102. Binary Tree Level Order Traversal
- leetcode 每日一题 107. Binary Tree Level Order Traversal II
- LeetCode 102. Binary Tree Level Order Traversal
- [LeetCode]102.Binary Tree Level Order Traversal
- [Leetcode] 102. Binary Tree Level Order Traversal
- LeetCode --- 102. Binary Tree Level Order Traversal
- [leetcode] 102.Binary Tree Level Order Traversal
- 【leetcode】102. Binary Tree Level Order Traversal
- Leetcode 102. Binary Tree Level Order Traversal
- 102. Binary Tree Level Order Traversal LeetCode
- [leetcode] 102. Binary Tree Level Order Traversal
- Leetcode 102. Binary Tree Level Order Traversal
- LeetCode *** 102. Binary Tree Level Order Traversal
- LeetCode 102. Binary Tree Level Order Traversal
- LeetCode 102. Binary Tree Level Order Traversal
- leetcode-102. Binary Tree Level Order Traversal
- 【leetcode】102. Binary Tree Level Order Traversal
- LeetCode 102. Binary Tree Level Order Traversal
- 使用VS2008自带的dumpbin.exe查看dll包含的函数
- spring DataSourceUtils
- lightoj 1060 - nth Permutation 组合数学
- leetcode-24 Swap Nodes in Pairs
- spring 事物日志
- leetcode 每日一题 102. Binary Tree Level Order Traversal
- Spring单实例、多线程安全、事务解析
- PHP7 扩展之自动化测试
- spring 事物 线程池 测试
- Android 如何找到最匹配资源
- 图片处理 javax.imageio.IIOException: Unsupported Image Type
- linux tasklet和workqueue的应用情景
- redis sharding方案
- 使用EditText在不同场景下调用软键盘的总结