我写下面的代码递归搜索二叉树。 即使我的system.out语句正在执行,return语句不会返回整个递归,因此此方法不会返回true。递归搜索二叉树问题
任何人都可以建议如何退出整个递归。
public static boolean isElementinTree(int num, BinaryTreeNode root)
{
if (root != null)
{
int rootVal = root.getData();
BinaryTreeNode left = root.getLeft();
BinaryTreeNode right = root.getRight();
if (left != null)
{
isElementinTree(num,left);
}
if (right != null)
{
isElementinTree(num,right);
}
if (num == rootVal)
{
System.out.println("------ MATCH -----");
return true;
}
}
return false;
}
我觉得你应该先检查是否在通过节点的匹配且仅当它没有数据,就应该移动到左边或右边子树。 – 2012-08-07 13:52:16