首页 文章

leaf to root bst遍历

提问于
浏览
0

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

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

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

在此先感谢任何帮助:)

1 回答

  • 2

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

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

    为了以防万一,inorder打印很简单:

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

相关问题