leaf to root bst遍历

时间:2016-05-24 21:07:22

标签: java binary-search-tree inorder

我只是想知道,给定一个指向其左右儿童的节点,是否有可能以某种方式获得整个bst树的顺序打印?

我所知道的这棵树是BST。 而我所知道的节点是他知道他的孩子是谁(左和右)。 我既没有访问节点的根也没有父节点。 选择的节点是随机挑选的,我需要返回整个树的顺序。

我认为没有足够的信息可以开始使用,而且我的朋友在求职面试中得到了这个问题,并且想知道这是一个无法解决的问题,还是有一个我不知道的技巧?

提前感谢您的任何帮助:)

1 个答案:

答案 0 :(得分:2)

从这种情况你唯一可以做的就是向下旅行,因为你没有指向父节点的指针。打印整个树的唯一情况是所考虑的节点是根。

因此,您可以获取以当前节点为根的子树的inorder打印。如果此节点是根节点,则它将打印整个树。如果不是,那就没有。

以防万一,打印很简单:

def inorder(node):
    if node == null: return
    inorder(node.left)
    print node.data
    inorder(node.right)