如何判断两个二叉树是否相等?3节点二叉树构型相关疑问
结论
你提到的未被计入统计的案例,确实和第一张图左数第三个属于同一种二叉树,你感知到的「父子关系差异」只是可视化布局带来的视觉误解,并非逻辑结构真的不同。
二叉树是否相等的判断规则
二叉树的相等判断基于逻辑结构的递归判定,和节点在示意图中的摆放位置完全无关,规则如下:
两棵二叉树完全相等,当且仅当同时满足以下所有条件:
- 两棵树的根节点状态一致:要么同时为空,要么都不为空且节点值相等
- 两棵树根节点的左子树完全相等
- 两棵树根节点的右子树完全相等
补充说明:二叉树严格区分左右子树,哪怕两棵树结构镜像对称,只要左右子树归属相反,也属于不同结构。比如「根节点+左孩子+左孙子」和「根节点+右孩子+右孙子」就是完全不同的两种结构,这也是3个节点的无标签二叉树总共有5种(对应卡特兰数C₃=5)的核心原因。
常见误解说明
你觉得父子关系有差异,大概率是示意图的布局调整导致的:很多示意图为了排版美观会调整节点的上下左右摆放位置,只要节点间的父子指向、左右子树的标记没有变化,不管怎么摆放都是同一棵树。比如把根节点画在最下方、子节点画在上方,只是视觉上倒转了,逻辑上的父子关系没有任何变化,自然属于同一结构。
内容的提问来源于stack exchange,提问作者user9178840
相关产品推荐
相关产品推荐

