目录
题目描述
试设计判断两棵二叉树是否相似的算法。所谓二叉树T1和T2相似,指的是T1和T2都是空的二叉树或都只有一个根节点;或者T1的左子树和T2的右子树是相似的,且T1的右子树和T2的右子树是相似的。
来源:王道p144.17
解题思路
由题目所给两二叉树相似条件可写出递归模型:
两节点都不存在,相似。
一个存在,一个不存在,不相似。
两节点都存在,递归判断T1左和T2左,T1右和T2右。
注意,递归模型应从树的底部往根部理解。
宏定义
#define TElemType char
二叉树定义
typedef struct TreeNode{
TElemType val;
struct TreeNode*left;
struct TreeNode*right;
}*Tree,TreeNode;