标签:
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] ]
/** * 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>> res=new ArrayList<List<Integer>>(); ArrayList<TreeNode> pre=new ArrayList<TreeNode>(); if(root==null){ return res; } pre.add(root); List<Integer> rootList=new ArrayList<Integer>(); rootList.add(root.val); res.add(rootList); while(!pre.isEmpty()){ ArrayList<TreeNode> temp=new ArrayList<TreeNode>(); List<Integer> tempValue=new ArrayList<Integer>(); for(TreeNode node :pre){ if(node.left != null){temp.add(node.left); tempValue.add(node.left.val);} if(node.right != null){temp.add(node.right); tempValue.add(node.right.val);} } if(!tempValue.isEmpty()){ res.add(0, tempValue); } pre=new ArrayList<TreeNode>(temp); } return res; } }
LeetCode-Binary Tree Level Order Traversal II
标签:
原文地址:http://www.cnblogs.com/incrediblechangshuo/p/5476411.html