剑指 Offer 26: 树的子结构

文章讨论了一种针对树结构的比较方法,强调理解树的结构和节点相等的条件。提到三种关键情况:头节点匹配及左侧或右侧子树匹配。正确策略应递归地比较A和B的完整结构,而非仅A的子树,以确保全面比较。回溯发生在B的左右子树均为空且未找到不匹配时,此时返回true。提供了一个修正后的程序示例来阐述正确逻辑。
摘要由CSDN通过智能技术生成

看到这道题第一反应就是要用类似遍历的方法。重点在于理解树的结构和相等时候的状态。有三种情况,头节点往下相同,左边有,右边有,所以三个表达式用或符号叠加起来就行。

回溯可以的条件是同时满足B的左边和右边都为空时还没有返回false(就是B已经完全比较完毕),这个时候说明返回值一定为true

2023/7/28

千万要注意,这边应该是判断完整的B和A的left以及right,不应该是B也是right,因为是完整的B要和A比!还有,回溯应该是用来比较A和B而非A的left之类,不然只会比较3次(A的左子树。A。A的右子树,如果都不相同返回的就是false),所以递归的left和right还是主函数,只有A和B比较时才是recur/judge函数!!

下面是正确的程序,在动笔前,逻辑一定要想明白。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值