前驱节点和后继节点

前驱节点

  • 前驱节点:中序遍历时的前一个节点
    如果是二叉搜索树,前驱节点就是前一个比它小的节点
  • node.left!=null
    前驱节点predecessor=node.left.right.right.right....
    终止条件为:right为null
  • node.left==null&&node.parent!=null
    前驱节点predecessor=node.parent.parent.paremt....
    终止条件:node在parent的右子树中
  • node.left==null&&node.parent==null
    该节点没有前驱节点

后继节点

  • 后继节点:中序遍历时的后一个节点
    如果是二叉搜索树,后继节点就是后一个比它大的节点
  • node.right!=null
    successor=node.right.left.left.left...
    终止条件:left为null
  • node.right==null&&node.parent!=null
    successor=node.parent.parent.parent....
    终止条件:node在parent的左子树中
  • node.right==null&&node.parent==null
    没有前驱节点
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。