Python binary search trees

In this tree, smaller values go left and larger values go right. Equal values are ignored, giving set-like behavior.

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

def insert(root, value):
    if root is None:
        return Node(value)
    if value < root.value:
        root.left = insert(root.left, value)
    elif value > root.value:
        root.right = insert(root.right, value)
    return root

def inorder(root, values):
    if root is not None:
        inorder(root.left, values)
        values.append(root.value)
        inorder(root.right, values)

root = None
for value in [4, 2, 6, 1, 3]:
    root = insert(root, value)
values = []
inorder(root, values)
print(values)
assert values == [1, 2, 3, 4, 6]
Read the full lesson