Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Definition for binary tree
- * public class TreeNode {
- * int val;
- * TreeNode left;
- * TreeNode right;
- * TreeNode(int x) { val = x; }
- * }
- */
- public class Solution {
- public List<List<Integer>> levelOrderBottom(TreeNode root) {
- ArrayList<List<Integer>> result = new ArrayList<List<Integer>>();
- ArrayList<TreeNode> row = new ArrayList<TreeNode>();
- ArrayList<Integer> rowVals = new ArrayList<Integer>();
- if(root==null)
- return result;
- row.add(root);
- while(!row.isEmpty()){
- rowVals.clear();
- for(int i = 0; i < row.size(); i++){
- TreeNode curr = row.get(i);
- rowVals.add(curr.val);
- }
- result.add(0,(ArrayList<Integer>)rowVals.clone());
- row = traverseRow(row);
- }
- return result;
- }
- public ArrayList<TreeNode> traverseRow(ArrayList<TreeNode> row){
- ArrayList<TreeNode> r = new ArrayList<TreeNode>();
- for(int i = 0; i < row.size(); i++){
- TreeNode curr = row.get(i);
- if(curr.left!=null) r.add(curr.left);
- if(curr.right!=null) r.add(curr.right);
- }
- return r;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement