本文主要是介绍判断两棵二叉树是否相似,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
二叉树T1和T2相似,指的是T1和T2都是空的二叉树或者都只有一个根结点;或T1的左子树和T2的左子树
是相似的并且T1的右子树和T2的右子树是相似的。
分析:采用递归的思想求解。若T1和T2都是空树,则相似;若有一个为空另一个不为空,则不相似;否则
递归地比较他们的左、右子树是否相似。
算法实现如下:
public boolean similar(TreeNode t1, TreeNode t2){// 采用递归算法判断两个二叉树是否相似boolean leftS = false, rightS = false;if (t1 == null && t2 == null) // 两树皆空return true;else if (t1 == null || t2 == null) // 只有一个树为空return false;else // 递归地进行判断{ leftS = similar(t1.left, t2.left);rightS = similar(t1.right, t2.right);return leftS && rightS;}}
这篇关于判断两棵二叉树是否相似的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!