我目前正在嘗試實現一個二叉搜索樹形狀比較,並且遇到了我的一行代碼的問題。你如何通過兩個返回語句遞歸? [JAVA]
if(treeStructOne.getHeight() == 1 && treeStructTwo.getHeight() == 1) //Base Case, if both are empty then they must be equal!
{
return true;
}
if(treeStructOne.getHeight() != treeStructTwo.getHeight()) //First make sure height is the same, if not, must be unequal
{
return false;
}
if(treeStructOne.hasLeft() && treeStructTwo.hasLeft())
{
return similar(treeStructOne.getLeft(),treeStructTwo.getLeft());
}
if(treeStructOne.hasRight() && treeStructTwo.hasRight()) //PROBLEM IS HERE
{
return similar(treeStructOne.getRight(),treeStructTwo.getRight());
}
return false;
出現該問題時,在樹1和2中的節點有左子,但只有1樹擁有權利,而不是樹2後,它會檢查他們都已經離開了孩子,這不運行正確的孩子檢查,如果離開是真的。這是用java的遞歸方式嗎?
它在幾乎任何可以想象的命令式語言中以這種方式工作。當你回來時,你會回來。沒有更多的是執行。 –