root์ ํ์
๊ณผ ๋ฐํํ์
์ TreeNode์
๋๋ค. ๋ฆฌ์คํธํ์ ์๋๋๋ค.
Example 1
Input: root = [4,2,7,1,3], val = 2
Output: [2,1,3]
Example 2
Input: root = [4,2,7,1,3], val = 5
Output: []
์ ํ์ฌํญ
- The number of nodes in the tree is in the range [1, 5000].
- Node.val
- root is a binary search tree.
- val
class Solution:
def searchBST(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:
if not root : return None
if val == root.val : return root #๋ฃจํธ๊ฐ ๊ฐ์ด ๊ฐ์ผ๋ฉด ๊ทธ ํธ๋ฆฌ ๋ฐํ
tree = self.searchBST(root.left, val)
return self.searchBST(root.right, val) if tree == None else tree
์ ๋ DFS๋ก ํ์์ต๋๋ค.
class Solution:
def searchBST(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:
if root is None or root.val == val:
return root # Return that node.
return self.searchBST(root.left,val) if root.val > val else self.searchBST(root.right,val)
๋ก์ง์ ๋น์ทํด๋ณด์ด์ง๋ง ๋ ์ฝ๋๊ฐ ๋ ๊ฐ๊ฒฐํฉ๋๋ค.
class Solution:
def searchBST(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:
while root:
if root.val==val:
return root
if root.val>val:
root=root.left
else:
root=root.right
return None
์ด๊ฑด ์ฌ๊ท๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ฝ๋์
๋๋ค.
๊ทผ๋ฐ ์๋๋ ๋น์ทํ๊ฒ ์ธก์ ๋๋ค์.