【发布时间】:2014-04-01 16:24:23
【问题描述】:
我需要比较两个二叉搜索树,看看它们是否相等。 我开发了以下使用递归的代码。
private boolean compareTrees(BinaryTreeNode n1, BinaryTreeNode n2)
{
if(n1.getNodeData() != n2.getNodeData())
return false;
else
{
if(n1.left != null && n2.left != null)
compareTrees(n1.left, n2.left);
if(n1.right != null && n2.right != null)
compareTrees(n1.right, n2.right);
}
return true;
}
问题是,如果两个节点不相等,该方法将返回false,但因为我使用递归,返回值无论如何都会被覆盖为true。我整天都被这个问题困扰着,对我没有任何帮助。我在网上搜索,但没有找到与我的代码相关的任何内容。 有什么办法可以打破所有嵌套的方法并将值返回给第一个方法?
【问题讨论】:
-
递归调用
compareTrees时忘记了return关键字。
标签: java recursion binary-search-tree