File tree Expand file tree Collapse file tree 1 file changed +51
-0
lines changed
validate-binary-search-tree Expand file tree Collapse file tree 1 file changed +51
-0
lines changed Original file line number Diff line number Diff line change 1+ # Definition for a binary tree node.
2+ from collections import deque
3+ class TreeNode :
4+ def __init__ (self , val = 0 , left = None , right = None ):
5+ self .val = val
6+ self .left = left
7+ self .right = right
8+
9+ def list_to_tree (arr ):
10+ if not arr :
11+ return None
12+ # -> 레벨로 주고 있음
13+ root = TreeNode (arr [0 ])
14+ queue = deque ([root ]) # 큐에 root를 넣고 시작 queue = deque() queue.append(root)와 동일
15+ i = 1
16+
17+ while queue and i < len (arr ):
18+ current = queue .popleft ()
19+
20+ if i < len (arr ) and arr [i ] is not None :
21+ current .left = TreeNode (arr [i ])
22+ queue .append (current .left )
23+ i += 1
24+
25+ if i < len (arr ) and arr [i ] is not None :
26+ current .right = TreeNode (arr [i ])
27+ queue .append (current .right )
28+ i += 1
29+
30+ return root
31+
32+
33+ class Solution :
34+ def isValidBST (self , root : Optional [TreeNode ]) -> bool :
35+ self .prev = None
36+ def inorder (node ):
37+ if not node :
38+ return True
39+
40+ # 왼쪽 서브트리 확인
41+ if not inorder (node .left ):
42+ return False
43+
44+ # 현재 노드 값 확인
45+ if self .prev is not None and node .val <= self .prev :
46+ return False
47+ self .prev = node .val
48+
49+ return inorder (node .right )
50+
51+ return inorder (root )
You can’t perform that action at this time.
0 commit comments