leetcode---binary-tree-level-order-traversal-ii---树层次遍历
2017-10-13 20:59
405 查看
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],
]
confused what”{1,#,2,3}”means? > read more on how binary tree is serialized on OJ.
OJ’s Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where ‘#’ signifies a path terminator where no node exists below.
Here’s an example:
1
/ \
2 3
/
4
\
5
The above binary tree is serialized as”{1,2,3,#,#,4,#,#,5}”.
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],
]
confused what”{1,#,2,3}”means? > read more on how binary tree is serialized on OJ.
OJ’s Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where ‘#’ signifies a path terminator where no node exists below.
Here’s an example:
1
/ \
2 3
/
4
\
5
The above binary tree is serialized as”{1,2,3,#,#,4,#,#,5}”.
/** * 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) { queue<TreeNode *> q; vector<vector<int> > ans; if(!root) return ans; q.push(root); stack<vector<int> > s; while(!q.empty()) { vector<int> v; queue<TreeNode *> q1; while(!q.empty()) { TreeNode *p = q.front(); q.pop(); v.push_back(p->val); if(p->left) q1.push(p->left); if(p->right) q1.push(p->right); } q = q1; if(!v.empty()) s.push(v); } while(!s.empty()) { vector<int> v = s.top(); s.pop(); ans.push_back(v); } return ans; } };
相关文章推荐
- 【LeetCode】BinaryTreeLevelOrderTraversal_ii 二叉树的层次遍历 II
- leetCode解题报告之Binary Tree Level Order Traversal II,I(二叉树层次遍历)
- Leetcode 107 Binary Tree Level Order Traversal II 二叉树层次遍历与倒转
- LeetCode: 107_Binary Tree Level Order Traversal II | 二叉树自底向上的层次遍历 | Easy
- Binary Tree Level Order Traversal II 二叉树按层遍历(反向输出)@LeetCode
- 【LeetCode】Binary Tree Zigzag Level Order Traversal 二叉树的锯齿形层次遍历 - Medium(LinkedIn)
- LeetCode-Binary Tree Zigzag Level Order Traversal-二叉树锯齿层次遍历-二叉树DFS层次遍历
- LeetCode 107 Binary Tree Level Order Traversal II(二叉树的层级顺序遍历2)(*)
- [LeetCode] Binary Tree Level Order Traversal 与 Binary Tree Zigzag Level Order Traversal,两种按层次遍历树的方式,分别两个队列,两个栈实现
- LeetCode: 102_Binary Tree Level Order Traversal | 二叉树自顶向下的层次遍历 | Easy
- 【LeetCode-面试算法经典-Java实现】【107-Binary Tree Level Order Traversal II(二叉树层序遍历II)】
- LeetCode 107 Binary Tree Level Order Traversal II(二叉树的层级顺序遍历2)(*)
- LeetCode:Binary Tree Level Order Traversal II (按层遍历)
- [LeetCode] Binary Tree Level Order Traversal 二叉树层次遍历(DFS | BFS)
- [leetcode-二叉树层次遍历并统计每层节点数]--102. Binary Tree Level Order Traversal
- leetcode 二叉树层次遍历输出Binary Tree Level Order Traversal
- LeetCode OJ 之 Binary Tree Level Order Traversal II (二叉树的层次遍历-二)
- [LeetCode] Binary Tree Level Order Traversal II 二叉树层序遍历之二
- 【遍历二叉树】05二叉树的层次遍历II【Binary Tree Level Order Traversal II】
- [Lintcode]Binary Tree Level Order Traversal II 二叉树的层次遍历 II