이진 검색 트리와 val이라는 다른 입력이 있다고 가정하고 트리에 val이 있는지 확인해야 합니다.
따라서 입력이 다음과 같으면
val =7이면 트리에 7이 있으므로 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따르겠습니다-
-
solve() 함수를 정의합니다. 이것은 뿌리를 내릴 것입니다, val
-
루트가 null이면
-
거짓을 반환
-
-
root의 데이터가 val과 같으면
-
참을 반환
-
-
루트
-
반환 해결(루트의 왼쪽, 발)
-
-
해결 반환(루트의 오른쪽, 발)
더 나은 이해를 위해 다음 구현을 살펴보겠습니다-
예시
class TreeNode: def __init__(self, data, left = None, right = None): self.data = data self.left = left self.right = right class Solution: def solve(self, root, val): if not root: return False if root.data == val: return True if root.data > val: return self.solve(root.left, val) return self.solve(root.right, val) ob = Solution() root = TreeNode(5) root.left = TreeNode(1) root.right = TreeNode(9) root.right.left = TreeNode(7) root.right.right = TreeNode(10) root.right.left.left = TreeNode(6) root.right.left.right = TreeNode(8) print(ob.solve(root, 7))
입력
root = TreeNode(5) root.left = TreeNode(1) root.right = TreeNode(9) root.right.left = TreeNode(7) root.right.right = TreeNode(10) root.right.left.left = TreeNode(6) root.right.left.right = TreeNode(8) 7
출력
True