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