You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

二叉搜索树中带左子树节点的中序前驱是否必为叶子节点?

二叉搜索树(BST)中序前驱的特性解析

你的理解是否正确?有没有例外?

你的理解不正确,带左子树的节点的中序前驱不一定是叶子节点。

举个反例:

10
     /
    7
   / \
  5   9
     /
    8

在这个BST中,节点10存在左子树(以7为根),它的中序前驱是左子树中的最大节点——9。但9并非叶子节点,它有左子节点8。这就打破了“前驱一定是叶子节点”的假设。

再看节点7的中序前驱是左子树最大节点5(叶子节点),节点9的中序前驱是8(叶子节点)。可见,前驱是否为叶子节点完全取决于左子树的结构,没有必然规律。

BST中序前驱的通用特性

  • 对于存在左子树的节点,其中序前驱是其左子树中的最大节点:即从左子节点出发,一直沿着右指针走到尽头的节点。这个节点可能是叶子节点,也可能是带有左子节点的非叶子节点(如上面例子中的9)。
  • 对于没有左子树的节点,其中序前驱是最近的祖先节点:需要沿着父节点向上遍历,直到找到一个节点是其父节点的右孩子——这个父节点就是目标节点的中序前驱。如果目标节点是整棵树的最左节点(最小元素),则不存在中序前驱。
  • 中序前驱的键值一定小于目标节点的键值(符合BST的性质),且是所有小于目标节点的键值中最大的那个。

内容的提问来源于stack exchange,提问作者Aslam Sha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 17:47:34