다음은 스칼라의 프로그램입니다.이것은 왜 재귀 적으로 작동하지 않습니까?
def range(low : Int, high : Int) : List[Int] = {
var result : List[Int] = Nil
result = rangerec(root, result, low, high)
result
}
private def rangerec(r : Node, l : List[Int], low : Int, high :Int) : List[Int] = {
var resultList : List[Int] = List()
if(r.left != null) {
rangerec(r.left, resultList, low, high)
} else if(r.right != null) {
rangerec(r.right, resultList, low, high)
} else {
if(r.key >= low && r.key <= high) {
resultList = resultList ::: List(r.key)
resultList
}
}
resultList
}
내 2 진 검색 트리에서 범위 순회 법을 사용하여 순서 순회 알고리즘을 구현했습니다. 그래서 재귀 적으로 작동해야하지만, 아무 것도 출력하지 않습니다. List(). 내 알고리즘을 수정하는 방법? 또는 내 코드를 편집 할 수 있습니까?