![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=1738897851-lRBBf0gJRuOOktxVxaba16if3AvkEnze-0-33250b6f4010eb3b69f4943857b4097b)
输入{1,2,3,4},{1,3,2,4},输出False,即如下两个二叉树,扭转第2层节点左右子树不能变换为等价的。
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P86_24816.jpg?sign=1738897851-H5me3QprvxvC7d95tFwFZkL8wpNg3Dj3-0-dfdebd1fa16aed2c3bd7ddabd9d5d7d3)
3.代码实现
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P87_24817.jpg?sign=1738897851-72leslOLMIcmBH3XMpSqisloNGoAYZsV-0-9b4d37c5a9fdc3349908fb4995c9dcdc)
4.运行结果
输入:1 2 3 4,1 3 2 4
输出:True