从树的底部开始的java深度优先搜索

1tu0hz3e  于 2021-06-29  发布在  Java
关注(0)|答案(0)|浏览(256)

我试图从二叉搜索树中的特定节点中找到最远的节点。为此,我想实现树的深度优先搜索。但是,我不知道如何从底部节点开始。我有 preOrder() , inOrder() 以及 posOrder() 但它们只对根节点有效。当我尝试在底部给它一个节点时,只返回那个节点,因为我似乎无法访问它的祖先。如何更改代码以执行此操作?

public Iterable<E> inOrder(){
    List<E> snapshot = new ArrayList<>();
    if (root!=null)
      inOrderSubtree(root, snapshot);   // fill the snapshot recursively
    return snapshot;    
}
private void inOrderSubtree(Node<E> node, List<E> snapshot) {
    if (node == null)
        return;
    inOrderSubtree(node.getLeft(), snapshot);
    snapshot.add(node.getElement());
    inOrderSubtree(node.getRight(), snapshot);
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题