*Leetcode 102. Binary Tree Level Order Traversal
来源:互联网 发布:mac版lol怎么安装 编辑:程序博客网 时间:2024/05/21 11:36
https://leetcode.com/problems/binary-tree-level-order-traversal/discuss/
1、BFS解法:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */struct DTreeNode { TreeNode *node; int dep; DTreeNode(int d, TreeNode *r): dep(d), node(r) {}};class Solution {public: vector<vector<int> > levelOrder(TreeNode* root) { vector < vector<int> > ret; if (root == NULL) return ret; vector < int > dep0; queue < DTreeNode* > q; q.push( new DTreeNode(0, root) ); while (! q.empty()) { DTreeNode * tp = q.front(); q.pop(); int dep = tp->dep; if (dep >= ret.size()) { ret.push_back( vector<int>{} ); } ret[dep].push_back( tp->node->val ); if (tp->node->left) { q.push( new DTreeNode(dep+1, tp->node->left) ); } if (tp->node->right) { q.push( new DTreeNode(dep+1, tp->node->right) ); } } return ret; }};
2、先序遍历
这个明显更快,应该是因为没有new变量等过程吧
/** * 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: void dfs(vector< vector<int> > &ans, int dep, TreeNode *root ) { if (root == NULL) return; if (dep == ans.size()) { ans.push_back( vector<int>{} ); } ans[dep].push_back(root->val); dfs(ans, dep+1, root->left); dfs(ans, dep+1, root->right); } vector<vector<int>> levelOrder(TreeNode* root) { vector< vector<int> > ans; dfs( ans, 0, root ); return ans; }};
阅读全文
0 0
- 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
- 【leetcode】102. Binary Tree Level Order Traversal
- LeetCode - 102. Binary Tree Level Order Traversal
- 电脑小白之简单的入侵电脑技巧
- 实现基本的Hello World WCF服务(v4.5)
- C语言发展历史
- LinkedHashMap 源码解读
- 网络知识
- *Leetcode 102. Binary Tree Level Order Traversal
- ACE_Reactor(二)ACE_Dev_Poll_Reactor
- markdown编辑器编写CSDN博客
- HDU 2054 A == B ?
- ARM 的几个重要特点
- tomcat上配置web项目注意
- python2 range() xrange()
- 数据埋点的基础认识
- 值得推荐的C/C++框架和库 (真的很强大)