[LeetCode 107]Binary Tree Level Order Traversal II(递归法)
来源:互联网 发布:新菜鸟网络俱乐部 编辑:程序博客网 时间:2024/06/05 13:22
题目内容
107 Binary Tree Level Order Traversal II
Given a binary tree, return the bottom-up level order traversal of its nodes’ values. (ie, from left to right, level by level from leaf to root).
For example:
Given binary tree [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
return its bottom-up level order traversal as:
[
[15,7],
[9,20],
[3]
]
问题来源
问题简述
按层遍历二叉树,并按自底向上,从左至右的顺序记录每层的数值。
题目分析
递归法是解决这一问题较为直接的方法,即对二叉树进行深度优先遍历。其中,引入表示层数的递归变量level能够利用vector中的下标操作较为快捷地插入元素。level变量的初始值设为0,每次向下遍历时加一。
每次递归时,如果结果中不存在对应层数的子容器,则新建一个容器。然后与层数对应的子容器中插入相应值即可,然后对其子节点进行level递增1的递归调用即可。
递归完成后,所得容器经过外层反转后即可得到题目所需结果。
代码示例
class Solution {public: vector<vector<int>> res; void DFS(TreeNode* p,int level) { vector<int> temp; if(p==NULL) return ; if(level==res.size()) res.push_back(vector<int>()); res[level].push_back(p->val); DFS(p->left,level+1); DFS(p->right,level+1); } vector<vector<int>> levelOrderBottom(TreeNode* root) { DFS(root,0); vector<vector<int>> result; for(int i=res.size()-1;i>=0;i--) result.push_back(res[i]); return result; }};
时间复杂度O(n),空间复杂度O(n).
0 0
- [LeetCode 107]Binary Tree Level Order Traversal II(递归法)
- LeetCode(107) Binary Tree Level Order Traversal II
- LeetCode: Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal II
- LeetCode Binary Tree Level Order Traversal II
- [Leetcode] Binary Tree Level Order Traversal II
- LeetCode Binary Tree Level Order Traversal II
- [LeetCode] Binary Tree Level Order Traversal II
- 【leetcode】Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal II
- [Leetcode]Binary Tree Level Order Traversal II
- [leetcode]Binary Tree Level Order Traversal II
- LeetCode-Binary Tree Level Order Traversal II
- LeetCode - Binary Tree Level Order Traversal II
- [LeetCode] Binary Tree Level Order Traversal II
- LeetCode | Binary Tree Level Order Traversal II
- LeetCode - Binary Tree Level Order Traversal II
- 【leetcode】Binary Tree Level Order Traversal II
- LIS-最长递增子序列
- Android中的自定义Adapter(继承自BaseAdapter)——与系统Adapter的调用方法一致——含ViewHolder显示效率的优化
- 代码审计的艺术系列—第八篇
- 安装grid时,task resolv.conf integrity failed
- 【杭电 2037】今年暑假不AC
- [LeetCode 107]Binary Tree Level Order Traversal II(递归法)
- Java-继承与构造函数
- eclipse提交项目到github
- 《css权威指南》——笔记3(结构与层叠)
- LA 5135 Mining Your Own Business(点双连通分量+贪心)
- 代码审计的艺术系列—第九篇
- 死锁的产生和解决
- 用万网云虚拟主机搭建一个自有域名的WordPress博客
- UVA 10820 Send a Table [欧拉函数] [线性筛法]