Skip to content

Commit af1b199

Browse files
committed
solve 2
1 parent 9c33ebc commit af1b199

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
'''
2+
์‹œ๊ฐ„ ๋ณต์žก๋„: O(n)
3+
- n์€ ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ ์ˆ˜
4+
5+
๊ณต๊ฐ„ ๋ณต์žก๋„: O(h)
6+
- h๋Š” ํŠธ๋ฆฌ์˜ ๋†’์ด
7+
'''
8+
from typing import Optional
9+
10+
# Definition for a binary tree node.
11+
class TreeNode:
12+
def __init__(self, val=0, left=None, right=None):
13+
self.val = val
14+
self.left = left
15+
self.right = right
16+
17+
class Solution:
18+
def isValidBST(self, root: Optional[TreeNode]) -> bool:
19+
def validate(node, min_val, max_val):
20+
if not node:
21+
return True
22+
23+
# ํ˜„์žฌ ๋…ธ๋“œ ๊ฐ’์ด ํ—ˆ์šฉ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด False
24+
if node.val <= min_val or node.val >= max_val:
25+
return False
26+
27+
# ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ๋Š” ํ˜„์žฌ ๊ฐ’๋ณด๋‹ค ์ž‘์•„์•ผ ํ•˜๊ณ , ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ๋Š” ํ˜„์žฌ ๊ฐ’๋ณด๋‹ค ์ปค์•ผ ํ•จ
28+
return validate(node.left, min_val, node.val) and validate(node.right, node.val, max_val)
29+
30+
# ์ดˆ๊ธฐ ๋ฒ”์œ„๋Š” ์ „์ฒด ์ •์ˆ˜ ๋ฒ”์œ„๋กœ ์„ค์ •
31+
return validate(root, float('-inf'), float('inf'))

0 commit comments

Comments
ย (0)