描述:
若已知两棵二叉树B1和B2皆为空,或者皆不空且B1的左、右子树和B2的左、右子树分别相似,
则称二叉树B1和B2相似。试编写算法,判别给定两棵二叉树是否相似。
算法设计:
首先定义 如果相似则返回true,否则返回false。
1)if (B1 == NULL && B2 == NULL) 则 like(B1,B2) = true。
2)if (B1,B2中有一个为空) 则 like(B1,B2) = false;
3)当B1,B2都不为空时,如果B1的左子树 和 B2的左子树 相似,B1的右子树 和B2的右子树相似,则like(B1,B2)= true;
算法实现。
对于上述算法设计思想,很显然,利用递归方法非常简单。
总结:
递归方法在二叉树中使用非常广泛。所以在实现的时候我们一般可以先考虑下递归思想。
这样写的程序既简单清晰,有很容易让人理解。