我的算法是否正确?
List<List<Node> > ol = new ArrayList<List<Node>>();
build(root,0)
void build (Node node,int level)
{
if(node==null)
return;
List<Node> il;
if(ol.size() < level){
il = new ArrayList<Node>();
}else{
il= ol.get(level);
}
il.add(node);
ol.put(level,il);
build(node.left, level+1);
build(node.right,level+1);
}
答案 0 :(得分:1)
假设您需要每个级别的节点列表,这似乎是正确的,除了:
ol.put(level,il);
列表没有put方法(在这种情况下会set
)。ol.add(il)
。;
build(root, 0)
醇>
编辑:澄清不。 2:
if(ol.size() < level) {
il = new ArrayList<Node>();
ol.add(il); //add here only, assuming level = ol.size() + 1 always is true in this case
}