aboutsummaryrefslogtreecommitdiff
path: root/challenge-130/lubos-kolouch/python/ch-2.py
blob: 55e4358cea028d2dc56835968cb2a940a79257e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env python
# -*- coding: utf-8 -*-

class Node:
    def __init__(self, value, left=None, right=None):
        self.value = value
        self.left = left
        self.right = right


def is_bst(node, min_val=float('-inf'), max_val=float('inf')):
    if node is None:
        return True
    if not min_val <= node.value <= max_val:
        return False
    return is_bst(node.left, min_val, node.value - 1) and is_bst(node.right, node.value + 1, max_val)


tree = Node(8, Node(5, Node(4), Node(6)), Node(9))
print(1 if is_bst(tree) else 0)