![Python编程300例:快速构建可执行高质量代码](https://wfqqreader-1252317822.image.myqcloud.com/cover/209/36862209/b_36862209.jpg)
上QQ阅读APP看书,第一时间看更新
例71 扭转后等价的二叉树
1.问题描述
检查两棵二叉树在经过若干次扭转后是否可以等价。扭转的定义是,交换任意节点的左右子树。等价的定义是,两棵二叉树必须为相同的结构,并且对应位置上的节点值要相等。
2.问题示例
输入{1,2,3,4},{1,3,2,#,#,#,4},输出True,即如下两个二叉树,扭转第2层节点左右子树可以变换为等价的。
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P86_24814.jpg?sign=1739219510-5EQHCePgPI7cD6V8XzECh0xp4PVk7Eoy-0-96ea820d098c42ddf526f2feac205563)
输入{1,2,3,4},{1,3,2,4},输出False,即如下两个二叉树,扭转第2层节点左右子树不能变换为等价的。
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P86_24816.jpg?sign=1739219510-rJc1gtz26KCnD8pGClZPC84CqVYmYndJ-0-d00c32b64ffe769414106aff03adedfe)
3.代码实现
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P87_24817.jpg?sign=1739219510-fkPGrrQ1lkSSwd2OMOCQWoxBqHXUGfpG-0-f1f73addcef6d91d4e40e13061fbe3d5)
4.运行结果
输入:1 2 3 4,1 3 2 4
输出:True