我只是想知道,给定一个指向其左右儿童的节点,是否有可能以某种方式获得整个bst树的顺序打印?
我所知道的这棵树是BST。 而我所知道的节点是他知道他的孩子是谁(左和右)。 我既没有访问节点的根也没有父节点。 选择的节点是随机挑选的,我需要返回整个树的顺序。
我认为没有足够的信息可以开始使用,而且我的朋友在求职面试中得到了这个问题,并且想知道这是一个无法解决的问题,还是有一个我不知道的技巧?
提前感谢您的任何帮助:)
答案 0 :(得分:2)
从这种情况你唯一可以做的就是向下旅行,因为你没有指向父节点的指针。打印整个树的唯一情况是所考虑的节点是根。
因此,您可以获取以当前节点为根的子树的inorder打印。如果此节点是根节点,则它将打印整个树。如果不是,那就没有。
以防万一,打印很简单:
def inorder(node):
if node == null: return
inorder(node.left)
print node.data
inorder(node.right)