[LeetCode]Binary Tree Level Order Traversal II

来源:互联网 发布:淘宝产品图片尺寸 编辑:程序博客网 时间:2024/06/06 07:46

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?

Tree Breadth-first Search



/** * Definition for binary tree * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {List<List<Integer>> res = new ArrayList<>();    public List<List<Integer>> levelOrderBottom(TreeNode root) {        levelOrderBottom(root,0);        Collections.reverse(res);        return res;    }        private void levelOrderBottom(TreeNode root, int level){    if(root == null) return;    if(level==res.size()){    List<Integer> list = new ArrayList<>();    res.add(list);    }    res.get(level).add(root.val);    levelOrderBottom(root.left,level+1);    levelOrderBottom(root.right,level+1);    }}



0 0