您的位置:首页 > 其它

leetcode-Binary Tree Level Order Traversal II

2015-11-05 12:44 375 查看
一层层遍历。

public class Solution {
public List<List<Integer>> levelOrderBottom(TreeNode root) {
List<List<Integer>> rearr=new ArrayList<List<Integer>>();
List<List<Integer>> rea=new ArrayList<List<Integer>>();
List<Integer> tre=new ArrayList<Integer>();
if(root==null)
return rearr;
List<TreeNode> t=new ArrayList<TreeNode>();
t.add(root);
tre.add(root.val);
rearr.add(tre);
addlo(rearr,t);
int len=rearr.size();
for(int i=0;i<len;i++)
{
rea.add(rearr.get(len-1-i));
}
return rea;
}

public static void addlo(List<List<Integer>> re,List<TreeNode> rel)
{
List<TreeNode> t=new ArrayList<TreeNode>();
List<Integer> tre=new ArrayList<Integer>();
if(rel.size()==0)
return ;
for(int i=0;i<rel.size();i++)
{
TreeNode temp=rel.get(i);
if(temp.left!=null)
{
t.add(temp.left);
tre.add(temp.left.val);
}
if(temp.right!=null)
{
t.add(temp.right);
tre.add(temp.right.val);
}
}
if(tre.size()!=0)
re.add(tre);
addlo(re,t);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: