您的位置:首页 > 其它

Binary Tree Level Order Traversal II

2018-02-26 00:00 162 查看
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]
]

/**
* Definition for a binary tree node.
* public class TreeNode {
*     int val;
*     TreeNode left;
*     TreeNode right;
*     TreeNode(int x) { val = x; }
* }
*/

import java.util.List;
import java.util.Vector;
import java.util.ArrayList;
import java.util.Collections;

class Solution {
public List<List<Integer>> levelOrderBottom(TreeNode root) {
List<List<Integer>> rst = new ArrayList<>();

if (null != root) {
Vector<TreeNode> vec = new Vector<>();

vec.add(root);
while (vec.size() > 0) {
List<Integer> lst = new ArrayList<>();
Vector<TreeNode> tmp = new Vector<>();
for (TreeNode t : vec) {
lst.add(t.val);
if (null != t.left) tmp.add(t.left);
if (null != t.right) tmp.add(t.right);
}
rst.add(lst);
vec = tmp;
}

Collections.reverse(rst);
}

return rst;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: