Добрый день! Есть задача: отсортировать N элементов, при помощи бинарного дерева поиска. Если элемент уже есть в дереве, то его добавлять не надо. Я делаю так:
#!/usr/bin/python
#(c) Andreev Alexander (aka Carzil) 2011
n = int(input())
class Node(object):
def __init__(self, key, left, right):
self.key = key
self.left = left
self.right = right
def set_value(self, val):
self.key = val
class Tree(object):
def __init__(self):
self.root = None
def add_key(self, node, val):
if node == None:
return Node(val, None, None)
elif val < node.key:
return Node(node.key, self.add_key(node.left, val), node.right)
elif val > node.key:
return Node(node.key, node.left, self.add_key(node.right, val))
else:
return Node(node.key, node.left, node.right)
def insert(self, val):
self.root = self.add_key(self.root, val)
def inorder_(self, node):
if node != None:
self.inorder_(node.left)
print(node.key)
self.inorder_(node.right)
def inorder(self):
self.inorder_(self.root)
t = Tree()
for i in range(n):
t.insert(int(input()))
t.inorder()
Но, при сдаче в тестирующую систему, пишет, что неправильный ответ на 37 тестах из 60. В чём может быть проблема?