LeetCode 102. Binary Tree Level Order Traversal
来源:互联网 发布:js清空input的value值 编辑:程序博客网 时间:2024/06/10 14:42
102. Binary Tree Level Order Traversal
二叉树层序遍历
考察 BFS 的写法。
层序遍历,每行从左到右的方向输出数组元素。
在这道题的基础上,还可以扩展出其他类型的层序遍历,例如 Z 字遍历。
参考 103. Binary Tree Zigzag Level Order Traversal
这道题属于必须掌握的题。
Description
Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).
For example:
Given binary tree [3,9,20,null,null,15,7],
3 / \ 9 20 / \ 15 7
return its level order traversal as:
[ [3], [9,20], [15,7]]
Code
下面直接给出AC的代码:
/** * 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: vector<vector<int>> levelOrder(TreeNode* root) { if (root == NULL) return {}; queue<TreeNode*> q; q.push(root); vector<vector<int>> ret; while (!q.empty()) { int cur_size = q.size(); vector<int> tmp; for (int i = 0; i < cur_size; i++) { TreeNode* node = q.front(); q.pop(); tmp.push_back(node->val); if (node->left) q.push(node->left); if (node->right) q.push(node->right); } ret.push_back(tmp); } return ret; }};
分析
咳咳,到了该分析算法的部分了。
空间复杂度[1]:
因为所有节点都必须被存储,因此BFS的空间复杂度 O(V+E),其中 V 是节点的数目,而E是边的数目。
时间复杂度:
当利用BFS搜索时,最坏的情况下要遍历整棵树。本题不是搜索,而直接就是输出整棵树。因此二者的时间复杂度一样。O(V+E)。
这部分的复杂度分析,其实我也没太搞懂,是参考了wiki上的。以后有时间弄明白原理了,再来更新吧
Reference
1.https://zh.wikipedia.org/wiki/%E5%B9%BF%E5%BA%A6%E4%BC%98%E5%85%88%E6%90%9C%E7%B4%A2
阅读全文
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
- Dev c++ 高精度加法(500位以内)
- Ubuntu设置局域网Windows共享文件Samba
- HEVC一阶指数哥伦布编码
- SSM注解配置 往Spring Boot 过渡
- Leetcode 647.Palindromic Substrings(算法分析week15)
- LeetCode 102. Binary Tree Level Order Traversal
- 用筛法求之N内的素数
- 第十三周项目1
- Unity 四元数和向量相乘
- C++中this指针的应用
- 一个常见的错误
- 常见攻击和解决方法
- Android简单集成Jiecaovideoplayer
- 当当分库分表(一)