티스토리 뷰
728x90
class Node:
def __init__(self, n, left=None, right=None):
self.n = n
self.left = left
self.right = right
def check_left(self, min_, max_):
return self.left is None or (min_ <= self.left.n and self.left.n <= max_)
def check_right(self, min_, max_):
return self.right is None or (min_ <= self.right.n and self.right.n <= max_)
def check(node):
return _check(node) == 0
def _check(node, min_=-float('inf'), max_=float('inf')):
if node is None:
return 0
if node.check_left(min_, min(max_, node.n)) and node.check_right(max(min_, node.n), max_):
return _check(node.left, min_, min(max_, node.n)) + _check(node.right, max(min_, node.n), max_)
else:
return 1
t1 = Node(
4,
Node(2, Node(1), Node(3)),
Node(6, Node(5), Node(7))
)
t2 = Node(
4,
Node(6, Node(1), Node(3)),
Node(6, Node(5), Node(7))
)
t3 = Node(
4,
Node(2, Node(1), Node(3)),
Node(6, Node(5), Node(7))
)
print(check(t1))
print(check(t2))
print(check(t3))
https://www.techiedelight.com/ko/determine-given-binary-tree-is-a-bst-or-not/
728x90
'공부' 카테고리의 다른 글
[spark] sql repartition (by query hint) `SELECT /*+ COALESCE(1) */` is better than `SELECT /*+ REPARTITION(1) */` (0) | 2022.09.22 |
---|---|
[kotlin] camelToSnake (0) | 2022.09.21 |
Deprecating the "X-" Prefix and Similar Constructs in Application Protocols (1) | 2022.09.17 |
[python] for i in range(a, b, c) (0) | 2022.09.16 |
[spark] sql yesterday (0) | 2022.09.14 |
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 레퍼럴
- 테슬라 레퍼럴 적용 확인
- 책그림
- 테슬라 리퍼럴 코드 혜택
- 메디파크 내과 전문의 의학박사 김영수
- 할인
- 유투브
- 개리마커스
- Kluge
- 테슬라 추천
- COUNT
- 팔로워 수 세기
- wlw
- 클루지
- 테슬라
- 테슬라 레퍼럴
- Bot
- 모델y
- 모델 Y 레퍼럴
- 테슬라 레퍼럴 코드 확인
- 인스타그램
- 테슬라 크레딧 사용
- 연애학개론
- follower
- 어떻게 능력을 보여줄 것인가?
- 테슬라 리퍼럴 코드 생성
- 김달
- 테슬라 리퍼럴 코드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
글 보관함