問題(必須遞歸): 編寫一個函數,該函數採用二叉樹的根,最小值和最大值,並查找樹中所有落在這些值,至少可能訪問其他節點給定最小值和最大值的二叉樹遞歸遍歷
public boolean inRange(Node node, int max, int min)
{
return root.element() < max && root.elemnt() > min;
}
public void inRangeFinder(Node root, int max, int min)
{
if (root == null) return; //break
if(inRange(root, max, min))
visit(root); //mark as found
finder(root.leftChild());
finder(root.rightChild());
}
我的問題,是第一個if語句的必要嗎?它會導致我的左和右子樹遍歷問題?最重要的是這種方法的訪問次數最少?
當然這是必要的。你還會如何處理葉子?在問之前,您是否沒有嘗試過使用一些測試用例來測試代碼? – Noich