【LeetCode】Binary Tree Level Order Traversal II

来源:互联网 发布:水牛 黄牛 知乎 编辑:程序博客网 时间:2024/06/05 00:49
Binary Tree Level Order Traversal II
Total Accepted: 4229 Total Submissions: 13624 My Submissions
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.
这道题和Binary Tree Level Order Traversal一样,只不过这个结果需要逆序一下。

也就多了几行代码而已。

    ArrayList<ArrayList<Integer>> newlist = new ArrayList<ArrayList<Integer>>();      int size = list.size();    for(int i = size-1; i >= 0 ; i--){        newlist.add(list.get(i));    } 
还是BFS吧,没什么好说的。

 Java AC

/** * Definition for binary tree * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public ArrayList<ArrayList<Integer>> levelOrderBottom(TreeNode root) {        ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>();          if(root == null){              return list;          }          bfs(root,list);         ArrayList<ArrayList<Integer>> newlist = new ArrayList<ArrayList<Integer>>();          int size = list.size();        for(int i = size-1; i >= 0 ; i--){            newlist.add(list.get(i));        }        return newlist;      }    public void bfs(TreeNode root,ArrayList<ArrayList<Integer>> list){          Queue<TreeNode> queue = new LinkedList<TreeNode>();          queue.offer(root);          while(!queue.isEmpty()){              int size = queue.size();              ArrayList<Integer> tempList = new ArrayList<Integer>();              for(int i = 0; i < size; i++){                  TreeNode point = queue.peek();                  queue.poll();                  tempList.add(point.val);                  if(point.left != null){                      queue.offer(point.left);                  }                  if(point.right != null){                      queue.offer(point.right);                  }              }              list.add(tempList);          }      }  }

0 0
原创粉丝点击