【发布时间】:2012-08-04 13:20:59
【问题描述】:
我已经编写了以下代码用于递归搜索二叉树。 即使我的 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;
}
【问题讨论】:
-
我认为你应该先检查节点中的数据是否匹配,如果不匹配,你应该移动到左边或右边的子树。
标签: java search recursion tree binary-tree