我正在备考,我发现了这道题。
假设二叉树前序打印(打印,递归调用左,递归调用右)方法给出以下输出:
{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/