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;
}
当然,如果有一个循环,这将不起作用,但无论如何,树中不应该有一个循环