2011-08-23 3 views
0

주어진 BST에서 주어진 수 (n)보다 작은 최대 수를 찾습니다. 확인, 루트 노드에서주어진 BST에서 주어진 수 (n)보다 작은 가장 큰 수를 찾습니다.

시작하면 N-1과 동일한 루트 :

나는이 시도. root가 n-1보다 작 으면 root.right의 메소드를 재귀 적으로 호출합니다. root가 n-1 이상이면, root.left의 메소드를 재귀 적으로 호출합니다.

이 솔루션은 현재 가장 큰 요소를 추적 할 수있는 전역 변수가 n보다 작 으면 작동하지만 좋은 해결책은 아닙니다. 전역 변수없이 해결하는 방법을 알려주십시오.

+0

당신이 묘사 한 것에서 시작하면 BST에서'n-1'을 (를) 찾고 있습니다 ... 작동하지 않습니다. –

+0

[중복 가능성 있음] (http://stackoverflow.com/questions/6334514/to-find-largest-element-smaller-than-k-in-a-bst)이 체크 아웃 할 수 있습니다. –

답변

0

가장 큰 숫자를 메서드에 매개 변수로 넣으십시오. 처음 전화 할 때 가능한 가장 낮은 번호를 전달하십시오.

관련 문제