二叉搜索树的每一层是否需要按顺序排列?
二叉搜索树合法性判断疑问解答
首先明确:二叉搜索树确实不要求各层节点按顺序排列,判断其合法性的核心是严格遵守左、右子树的大小约束规则,层序是否有序完全不影响合法性。
你提到的那张示例图,结构大致为:根节点是8,左子节点为3,右子节点为10;3的左子节点是1,右子节点是6;6的左子节点是4,右子节点是7;10的右子节点是14,14的左子节点是13。这棵树是合法的二叉搜索树,查找4的路径非常清晰:
- 从根节点8出发,4 < 8,走左分支到节点3;
- 4 > 3,走3的右分支到节点6;
- 4 < 6,走6的左分支,就能找到目标节点4。
这里需要厘清二叉搜索树的规则边界:
- 通用二叉树规则:每个节点最多有两个子节点;
- 二叉搜索树独有规则:对于任意节点,其左子树的所有节点值都小于该节点值,右子树的所有节点值都大于该节点值。
层序有序是完全二叉树、堆这类结构的特性,和二叉搜索树无关。只要任意节点都满足上述独有规则,无论各层节点如何分布,都是合法的二叉搜索树。
内容的提问来源于stack exchange,提问作者bugsyb
相关产品推荐
相关产品推荐

