Leet Code OJ 107. Binary Tree Level Order Traversal II [Difficulty: Easy]

来源:互联网 发布:kernel task 上传数据 编辑:程序博客网 时间:2024/05/01 22:57

题目:
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},
二叉树
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; } * } */public class Solution {    public List<List<Integer>> levelOrderBottom(TreeNode root) {        List<List<Integer>> result=levelOrder(root);        Collections.reverse(result);        return result;    }    public List<List<Integer>> levelOrder(TreeNode root) {        List<List<Integer>> result=new ArrayList<>();        if(root==null){            return result;        }        List<Integer> one=new ArrayList<>();        one.add(root.val);        result.add(one);        List<List<Integer>> left=levelOrder(root.left);        List<List<Integer>> right=levelOrder(root.right);        for(int i=0;i<left.size()||i<right.size();i++){            List<Integer> item=new ArrayList<>();            if(i<left.size()){                for(Integer k:left.get(i)){                    item.add(k);                }            }            if(i<right.size()){                for(Integer k:right.get(i)){                    item.add(k);                }            }            result.add(item);        }        return result;    }}
1 0