判断两棵二叉树是否相似

二叉树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;
		}
	}


猜你喜欢

转载自blog.csdn.net/tc_1337/article/details/80795022