LeetCode--Binary Tree Level Order Traversal
来源:互联网 发布:nginx 域名跳转tomcat 编辑:程序博客网 时间:2024/05/03 07:56
Binary Tree Level Order Traversal
这几个题目类似,都是用相同的递归法,时间空间复杂度都为O(n).
当然,还有迭代法,控件复杂度会降至 O(1),这个暂不讨论。
Binary Tree Level Order Traversal
// 递归版,时间复杂度 O(n),空间复杂度 O(n) class Solution {public: vector<vector<int> > levelOrder(TreeNode *root) { vector<vector<int>> result; traverse(root, 1, result); return result;} void traverse(TreeNode *root, size_t level, vector<vector<int>> &result) { if (!root) return; if (level > result.size()) result.push_back(vector<int>()); result[level-1].push_back(root->val); traverse(root->left, level+1, result); traverse(root->right, level+1, result);} };
Binary Tree Level Order Traversal II
// 递归版,时间复杂度 O(n),空间复杂度 O(n)class Solution {public:vector<vector<int> > levelOrderBottom(TreeNode *root) { vector<vector<int>> result;traverse(root, 1, result);std::reverse(result.begin(), result.end()); // 比上一题多此一行 return result;} void traverse(TreeNode *root, size_t level, vector<vector<int>> &result) { if (!root) return; if (level > result.size()) result.push_back(vector<int>()); result[level-1].push_back(root->val); traverse(root->left, level+1, result); traverse(root->right, level+1, result);} };
Binary Tree Zigzag Level Order Traversal
// 递归版,时间复杂度 O(n),空间复杂度 O(n)class Solution {public: vector<vector<int> > zigzagLevelOrder(TreeNode *root) { vector<vector<int>> result; traverse(root, 1, result, true); return result;} void traverse(TreeNode *root, size_t level, vector<vector<int>> &result, bool left_to_right) { if (!root) return; if (level > result.size()) result.push_back(vector<int>()); if (left_to_right) result[level-1].push_back(root->val); else result[level-1].insert(result[level-1].begin(), root->val); traverse(root->left, level+1, result, !left_to_right); traverse(root->right, level+1, result, !left_to_right); }};
0 0
- LeetCode[Tree]: Binary Tree Level Order Traversal
- *(leetcode) Binary Tree Level Order Traversal (tree)
- [leetcode][tree] Binary Tree Level Order Traversal
- LeetCode: Binary Tree Level Order Traversal
- LeetCode: Binary Tree Zigzag Level Order Traversal
- LeetCode: Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal
- [LeetCode]Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Level Order Traversal
- LeetCode Binary Tree Level Order Traversal II
- LeetCode Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Level Order Traversal
- [Leetcode] Binary Tree Level Order Traversal II
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Level Order Traversal
- LeetCode Binary Tree Level Order Traversal II
- MyISAM读写并发优化
- myclipse 复制一个项目改名之后tomcat部署还是原来的名字 解决方法
- 引用 指针的区别
- iOS应用崩溃日志分析
- C语言中对结构体或数组清零的最快方法
- LeetCode--Binary Tree Level Order Traversal
- switch(String s)是在jdk1.7之后才出现,但是编译器又要求使用较低版本。
- 当VB遇上grid report
- 深入理解Memcached原理
- ElasticSearch在window下的基本配置
- 正则表达式的数字实例
- Linux 文件系统的简单操作
- 多台主机搭建redis集群
- 剑指Offer-->栈的压入、弹出序列(★★★★★)