[LeetCode] Binary Tree Level Order Traversal II
来源:互联网 发布:sift python 编辑:程序博客网 时间:2024/06/06 02:45
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],]
跟之前的题目一样,就是最后加一个反转。
recursive 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) { vector<vector<int>> result; if(!root) return result; traverse(root, 1, result); reverse(result.begin(), result.end()); return result; } void traverse(TreeNode *root, int level, vector<vector<int>> &result) { if(!root) return; if(level > result.size()) result.push_back(vector<int>()); result[level-1].push_back(root->val); traverse(root->left, level+1, result); traverse(root->right, level+1, result); }};
iterative 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) { vector<vector<int>> result; if(!root) return result; queue<TreeNode*> current, next; vector<int> level; current.push(root); while(!current.empty()) { while(!current.empty()) { TreeNode *node = current.front(); current.pop(); level.push_back(node->val); if(node->left) next.push(node->left); if(node->right) next.push(node->right); } result.push_back(level); level.clear(); swap(next, current); } reverse(result.begin(), result.end()); return result; }};
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
- 面试题strtoi实现(一)—— 函数的简单实现
- ubuntu 14.1下在线安装mysql
- Android:waiting for debugger,Eclipse DDMS error “Can't bind to local 8600 for debugger”
- HDU 4618 Palindrome Sub-Array
- Opencv 学习笔记(1)
- [LeetCode] Binary Tree Level Order Traversal II
- ubuntu中vi上下左右键显示字母的解决方法
- Action中result的各种转发类型
- POJ-1273
- 图像采样
- 最大连续乘积字串
- [POJ 2492] A Bug's Life [黑白染色]
- C++设计新思维(1)
- Java笔记:抽象类