Leetcode: Binary Tree Level Order Transversal II

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]

]

在Binary Tree Level Order Transversal的基础上难度:20,只需要对最后结果做一个倒序就好。格式是Collections.reverse(List<?> list)

 1 /**

 2  * Definition for binary tree

 3  * public class TreeNode {

 4  *     int val;

 5  *     TreeNode left;

 6  *     TreeNode right;

 7  *     TreeNode(int x) { val = x; }

 8  * }

 9  */

10 public class Solution {

11     public ArrayList<ArrayList<Integer>> levelOrderBottom(TreeNode root) {

12         ArrayList<ArrayList<Integer>> lists = new ArrayList<ArrayList<Integer>> ();

13         if (root == null) return lists;

14         LinkedList<TreeNode> queue = new LinkedList<TreeNode>();

15         queue.add(root);

16         int ParentNumInQ = 1;

17         int ChildNumInQ = 0;

18         ArrayList<Integer> list = new ArrayList<Integer>();

19         while (!queue.isEmpty()) {

20             TreeNode cur = queue.poll();

21             list.add(cur.val);

22             ParentNumInQ--;

23             if (cur.left != null) {

24                 queue.add(cur.left);

25                 ChildNumInQ++;

26             }

27             if (cur.right != null) {

28                 queue.add(cur.right);

29                 ChildNumInQ++;

30             }

31             if (ParentNumInQ == 0) {

32                 ParentNumInQ = ChildNumInQ;

33                 ChildNumInQ = 0;

34                 lists.add(list);

35                 list = new ArrayList<Integer>();

36             }

37         }

38         Collections.reverse(lists);

39         return lists;

40     }

41 }

 注意38行的写法,Collections.reverse()跟Arrays.sort()函数一样,都是void返回型,然后改变作用在argument上

还有if (root == null) return null;

ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();这样会出错:

Input:{}Output:nullExpected:[]

你可能感兴趣的:(LeetCode)