[Leetcode] 98. Validate Binary Search Tree
์ฃผ์ด์ง ํธ๋ฆฌ๊ฐ ์ด์งํ์ํธ๋ฆฌ(BST)์ธ์ง ํ๋ณํ๋ ๋ฌธ์ ๋ค.
BST๊ฐ ๋๊ธฐ์ํ ์กฐ๊ฑด
BST๋ฅผ ์ค์์ํํ๋ฉด ์ค๋ฆ์ฐจ์์ด๋ผ๋ ์ ์ ์ด์ฉํ์๋ค.
class Solution:
def isValidBST(self, root: Optional[TreeNode]) -> bool:
stack = []
curr = root
prev = None
while curr or stack:
while curr:
stack.append(curr)
curr = curr.left
curr = stack.pop()
if prev and curr.val > prev.val:
return False
prev = curr
curr = curr.right
return True
curr
, ์ง์ ์ ๋ฐฉ๋ฌธํ ๋
ธ๋๋ฅผ ์ ์ฅํ ๋ณ์ prev
๋ฅผ ์ค์ ํ๋ค.curr
๊ฐ์ ์
๋ฐ์ดํธ ํ๋ค.False
๋ฅผ ๋ฐํํ๋ค.prev
๊ฐ๊ณผ curr
๊ฐ์ ์
๋ฐ์ดํธํ๋ค.True
๋ฅผ ๋ฐํํ๋ค.