Java 二叉搜索树的顺序,该树按预先顺序打印自身

Java 二叉搜索树的顺序,该树按预先顺序打印自身,java,binary-tree,Java,Binary Tree,我在准备考试,我发现了这个问题 假设二叉树预排序打印(打印、递归调用左、递归调用右)方法给出以下输出: {10, 8, 1, 9, 12, 15, 14} 如果我们知道这是一个二叉搜索树,那么该树是如何构建的 所以如果我没有错的话,它必须是这样的: 10 / \ 8 12 / \ \ 1 9 15 \ 14 对吗 这是不正确的,因为树必须保持其搜索功能,这意味着它必须保持不变的

我在准备考试,我发现了这个问题

假设二叉树预排序打印(打印、递归调用左、递归调用右)方法给出以下输出:

{10, 8, 1, 9, 12, 15, 14}
如果我们知道这是一个二叉搜索树,那么该树是如何构建的

所以如果我没有错的话,它必须是这样的:

      10
     /  \
   8     12 
 /   \    \
1    9     15
            \
             14

对吗

这是不正确的,因为树必须保持其搜索功能,这意味着它必须保持不变的形式。如果节点14是正确的子节点,则会丢失此表单。14应该是节点15的左子节点。如果您查看节点8,我们会看到,如果值小于8,则它位于左侧,否则该值为右侧子节点

            10
           /  \
          8    12
         / \    \
        1   9   15
                /
               14

在二元搜索树中,左子级应该低于其父级,右子级应该大于其父级,因为
14
应该是
15

      10
     /  \
   8     12 
 /   \    \
1    9     15
           /
          14

您可以找到BST的一个很好的解释

如果它是一个二叉树,则它是不正确的。这14个应该是15岁的左撇子;“左侧低于父级,右侧大于父级。”很好的解释,也请查看