Java 如何在非二叉树中获取叶的级别
我构建了一个树类,如下所示:Java 如何在非二叉树中获取叶的级别,java,tree,Java,Tree,我构建了一个树类,如下所示: public class Node { private int label; private ArrayList<Node> children; private Node parent; public Node(int label) { this.label = label; this.children = new ArrayList<Node>(); thi
public class Node {
private int label;
private ArrayList<Node> children;
private Node parent;
public Node(int label) {
this.label = label;
this.children = new ArrayList<Node>();
this.parent = null;
}
public void addChild(Node child) {
this.children.add(child);
}
public int getLabel() {
return this.label;
}
public ArrayList<Node> getChildren() {
return this.children;
}
public Node getParent() {
return this.parent;
}
public void setParent(Node parent) {
this.parent = parent;
}
}
我如何编写一个方法来获取非二叉树中的叶的级别(比如用7
标记的节点)
public int getLevel() {
if (parent == null) return 0;
// Additional code is needed here
}
级别通常称为深度或高度
public int getLevel(){
Node temp = parent;
int depth = 0;
while(temp != null){
depth++;
temp = temp.parent;
}
return depth;
}
当然,如果有一个循环,这将不起作用,但无论如何树中不应该有一个循环。级别通常称为深度或高度
public int getLevel(){
Node temp = parent;
int depth = 0;
while(temp != null){
depth++;
temp = temp.parent;
}
return depth;
}
当然,如果有一个循环,这将不起作用,但无论如何,树中不应该有一个循环