LeetCode 107: Binary Tree Level Order Traversal II
来源:互联网 发布:小说推荐知乎 编辑:程序博客网 时间:2024/06/03 11:27
Difficulty: 3
Frequency: 1
Problem:
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,#,#,15,7}
,
3 / \ 9 20 / \ 15 7
return its bottom-up level order traversal as:
[ [15,7] [9,20], [3],]
Solution:
/** * Definition for binary tree * 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) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<vector<int> > answer; if (root==NULL) return answer; list <vector<int> > stack; vector <int> one_level; vector<TreeNode *> level[2]; int i_level_num = 0; level[i_level_num].push_back(root); while (!level[i_level_num].empty()) { int i_next_level = i_level_num^1; for (int i = 0; i<level[i_level_num].size(); i++) { if (level[i_level_num][i]->left!=NULL) level[i_next_level].push_back(level[i_level_num][i]->left); if (level[i_level_num][i]->right!=NULL) level[i_next_level].push_back(level[i_level_num][i]->right); one_level.push_back(level[i_level_num][i]->val); } level[i_level_num].clear(); stack.push_back(one_level); one_level.clear(); i_level_num = i_next_level; } while(!stack.empty()) { answer.push_back(stack.back()); stack.pop_back(); } return answer; }};
Notes:
Use a stack to store and reverse data.
- 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
- Oracle 10g使用游标遍历表数据
- js传值后台中文乱码解决
- [NOTE] NFS 和TFTP安装与配置
- js导出table到excel,同时兼容FF和IE
- C++引用和指针的区别
- LeetCode 107: Binary Tree Level Order Traversal II
- 挨踢江湖之二十一
- 网站前端开发的注意项
- 一位资深程序员的程序人生总结十三条
- 重装系统后 如何使用之前mysql数据
- linux终端快捷键
- 【Android 开发教程】使用Intent发送短信
- 23种设计模式(6):模版方法模式
- (MYSQL)数据源 (ODBC)时不能连接到数据库服务器