LeetCode--Binary Tree Level Order Traversal II
来源:互联网 发布:gprs网络通信模块收费 编辑:程序博客网 时间:2024/06/18 06:50
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]]
思路:和之前Binary Tree Level Order Traversal这个一样,只不过最后reverse反转一下,倒序。
方法一:递归。
/** * 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>> levelOrderBottom(TreeNode* root) { vector<vector<int>>result; traverse(root,result,1); reverse(result.begin(),result.end()); return result; } void traverse(TreeNode* root,vector<vector<int>>&result,int level){ if(!root) return; if(level>result.size()){ result.push_back(vector<int>()); } result[level-1].push_back(root->val); traverse(root->left,result,level+1); traverse(root->right,result,level+1); }};
方法二:迭代。
/** * 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>> levelOrderBottom(TreeNode* root) { vector<vector<int>>result; traverse(root,result,1); reverse(result.begin(),result.end()); return result; } void traverse(TreeNode* root,vector<vector<int>>&result,int level){ if(!root) return; if(level>result.size()){ result.push_back(vector<int>()); } result[level-1].push_back(root->val); traverse(root->left,result,level+1); traverse(root->right,result,level+1); }};
阅读全文
0 0
- 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
- [LeetCode] Binary Tree Level Order Traversal II
- 日历计算(C++类实现)
- 【感悟】从离职到再就业的回顾与展望
- 移动狂砸10亿元补贴NB-IoT的背后,最新崛起的居然是块表?!
- jQuery的change函数,以及on函数的change事件,使用和区别
- C语言编译过程
- LeetCode--Binary Tree Level Order Traversal II
- 打印任意一年的日历(1900年1月1日是星期一)
- 自定义字体图标
- 苹果传自行研发电源管理 IC,供应商Dialog哭晕在厕所?
- strerror -- 识别错误代码,返回描述的字符串
- JavaScript指定长度和进制的UUID
- 自顶向下逐步求精
- C++中.h文件与.cpp文件中该写什么?
- zoj 2563 Long Dominoes (状态压缩dp)