首页 文章

如何在非二进制树中查找特定节点?

提问于
浏览
1

我有一个包含多个节点的树 . 每个节点都有一个父节点(在根的情况下为null),一个名称(名称)和一个HashTable(子),它将子节点的名称映射到子节点对象 .

给定节点的字符串名称,我想创建一个迭代树的方法来查找特定节点并返回它 . 如果该节点不存在则返回null .

我认为递归方法最好 . 到目前为止我有这个:

public Node findNode(Node n, String s) {
   if (n.name == s) {
       return n;
   } else {
       for (Node child: n.children.values()) {
            findNode(child, s);
       }
     }
}

我不确定在哪里放置null语句 .

1 回答

  • 4

    如果孩子有,请将其归还 . 如果没有,则返回 null .

    public Node findNode(Node n, String s) {
        if (n.name == s) {
            return n;
        } else {
            for (Node child: n.children.values()) {
                Node result = findNode(child, s);
                if (result != null) {
                    return result;
                }
            }
        }
        return null;
    }
    

相关问题