Leetcode 107. Binary Tree Level Order Traversal II
来源:互联网 发布:田丰 阿里云 领英 编辑:程序博客网 时间:2024/06/08 00:53
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]]
s思路:
1. 先来简单粗暴的做法:每层遍历出结果,然后在把结果reverse。还有一种就是:先知道tree有好多层,然后写的时候从vector右边开始写。总之,没有一次可以搞定的,不是预处理,就是后处理。
2. 之前 Leetcode 102. Binary Tree Level Order Traversal用queue来做,这道题也确实用bfs来做很直观,没难度。稍微有点难度的是用recursive的方法:recursive会先沿着一条路走到底再换路,这个过程就会在不同层次见穿梭。那么还可以用recursive吗?通用的方法就是用一个参数来表示目前到那个层次了,如果层次大于vector的最大size,说明是第一次访问这个层次,需要resize vector;如果层次小于vector的size,则直接在对应位置push_back。这种做法,确实有些趣味。你看,dfs想要把同一个层次的数放在一起,没bfs方便,因为层次变来变去,但是一旦我们给这个层次取一个名字,抓住他,一样的方便,恰好弥补了这个缺陷!!!
//方法1:recursive来个正序的,然后在reverse结果。class Solution {public: void helper(vector<vector<int>>&res,TreeNode* root,int level){ if(!root) return; if(level>=res.size()){ res.resize(level+1); } res[level].push_back(root->val); helper(res,root->left,level+1); helper(res,root->right,level+1); } vector<vector<int>> levelOrderBottom(TreeNode* root) { // vector<vector<int>> res; helper(res,root,0); return vector<vector<int>>(res.rbegin(),res.rend()); }};
- [LeetCode]102. Binary Tree Level Order Traversal&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
- 【LeetCode】Binary Tree Level Order Traversal II
- Android图片上下左右滑动特效--Recycker实现
- jquery表格的维护和删除
- 关于BQ40Z50-R1使用过程中的点点滴滴
- HDU 1016 素数环
- freecodecamp 算法部分刷题笔记
- Leetcode 107. Binary Tree Level Order Traversal II
- struts2 demo
- windows8的BCD文件损坏无法进入的解决方法
- Spring中的一些术语
- [Codeforces Round #373 DIV1E (CF718E)] Matvey's Birthday
- <转载>图的存储方式
- 优酷路由宝 tf异常 解决办法
- java设计模式之责任链模式
- UITableView和UITableViewCell