【leetcode】107. Binary Tree Level Order Traversal II
2016-01-05 22:42
288 查看
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
return its bottom-up level order traversal as:
[/code]
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] ]
/** * 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) { queue<TreeNode*> q; vector<vector<int>> vec; if (!root) { return vec; } stack<vector<int>> st; q.push(root); q.push(NULL); vector<int> tmp; while (!q.empty()) { TreeNode *node = q.front(); q.pop(); if (node == NULL) { st.push(tmp); tmp.clear(); if (q.empty()) { break; } q.push(NULL); continue; } tmp.push_back(node->val); if (node->left) { q.push(node->left); } if (node->right) { q.push(node->right); } } while (!st.empty()) { vec.push_back(st.top()); st.pop(); } return vec; } };
[/code]
相关文章推荐
- jsp/jstl引擎1.0.1.2发布
- Android活动的生命周期
- 单例模式 c#
- 三、IF...ELSE和缩进
- 删除重复节点
- Large Pool 错误
- 外币兑换
- DapperLambda发布
- tcpdump 抓 tcp 包
- linux下简单的配置jdk方法
- 【数组】Spiral Matrix II
- LeetCode OJ:Implement Queue using Stacks(栈实现队列)
- HTML5结构化标签
- mysql format时间格式化说明
- 2016 IT 运维工作计划及学习
- Xcode一些好用的插件,以及这些插件的管理器
- css样式优先级
- C#静态变量、静态方法、静态类
- MapReduce程序的工作过程
- Outlook 2016 配置QQ邮箱