1. 일반 재귀
하나 의 TreeNode searchBST * (*에서의 TreeNode 루트 INT의 발) { 2 경우 (! 루트) 3 창 nullptr; 도 4 의 경우 (발> 루트 -> 발) 5 { 6 루트 = searchBST (루트 -> 오른쪽 발); 7 } (8) 그 밖의 경우 (발 <루트 -> 발) 9 { 10 루트 = searchBST (루트 -> 왼쪽 발); 11 } 12 반환 루트; 13 }
주문 재귀 2.
하나 의 TreeNode searchBST * (*에서의 TreeNode 루트 INT의 발) { 2 경우 (! 루트) 3 창 nullptr; 4 의 TreeNode * 입술 = searchBST (루트 -> 왼쪽 발); 도 5 의 경우 (해상도) 6 복귀 입술; (7) 그 밖의 경우 (루트 -> 발> 발) 8 복귀 nullptr; 9 다른 경우 (루트 레벨> 발 == val) 인 10 반환 루트; 11 의 TreeNode * 입술 = searchBST (루트 -> 오른쪽 발); 12 리턴 고해상도; 13 }
3. 반복
하나 의 TreeNode searchBST * (*에서의 TreeNode 루트 INT의 발) { 2 동안 (루트) 3- { 4- 경우 (루트 -> 발> 발) 5 루트 = 루트 -> 좌측; (6) 그 밖의 경우 (루트 -> 발 < 발) 7 루트 = 루트 -> 오른쪽; 8 다른 9 반환 루트; 10 } 11 반환 루트; 12 }