java - 按预定顺序打印自身的二叉搜索树的顺序

标签 java binary-tree

我正在备考,我发现了这道题。

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

{10, 8, 1, 9, 12, 15, 14}

如果我们知道它是一棵二叉搜索树,如何构建树?

所以如果我没记错的话,应该是这样的:

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

是否正确?

最佳答案

这是不正确的,因为树必须保持其搜索能力,这意味着它必须保持不变的形式。通过让节点 14 成为正确的 child ,我们失去了这种形式。 14 应该是节点 15 的左子节点。如果您查看节点 8,我们会发现如果值小于 8,则它在左边,否则该值是右子节点。

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

关于java - 按预定顺序打印自身的二叉搜索树的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22793036/

相关文章:

java - HashMap 值是否需要不可变?

java - Android 测试和模拟 : add to a List

java - 在 Android 中实现 SOAP API

algorithm - 在 O(1) 中构建二叉树?

c - 不正确的二叉树

java - 为什么代码在选项卡上表现不正常?

java - Park Unpark 开发自定义阻塞队列

algorithm - 任意n元树中至多有ceiling(n/2^(h+1))个高度为h的节点

未分配正在释放的 C 指针

algorithm - 二叉搜索树中的删除