我寫下面的代碼遞歸搜索二叉樹。 即使我的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