这是我从旧考试中找到的任务,我试着解决,因为他们可以在周五向我提出类似的问题。
对于解决方案,我有廉价的解决方案,但我认为二元搜索树的定义都很重要。
我制作第一棵树:
1
\
1
\
1
这是第二棵树
1
/
1
/
1
当你进行预订遍历时,你对两个树都有相同的输出..因为同一个元素,并且都有退化树。但是你没有同一棵树!所以陈述是错误的。
唯一的问题是我的树二叉搜索树...我想是的,因为二元搜索树元素可以有更大/更低的相等元素?
当我问老师他说我度假结束时可以问他,但是假期结束时我的考试结束了,请停下来......对我来说没有好处。
答案 0 :(得分:1)
鉴于BST的标准定义,您的答案非常好。根据标准定义,BST可以具有重复的元素,并且相同的元素可以在任一子树中。
如果问题意味着没有重复的情况,或者只有左侧(或仅右侧)子树中必须存在重复项,那么预先遍历就足以重建树。
如果不允许重复,则按如下方式递归构造树:将根作为第一个节点,然后使用输入遍历原始遍历的部分,使用节点小于(对于左子树)并且大于(对于右子树)根节点。如果允许重复但受约束为左子树或右子树,则使用相同的过程,但将“或等于”添加到小于或大于,但不是两者。