Добрый день! Есть задача: отсортировать N элементов, при помощи бинарного дерева поиска. Если элемент уже есть в дереве, то его добавлять не надо. Я делаю так:
#!/usr/bin/python
#© Andreev Alexander (aka Carzil) 2011
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 traverse(self, node):
global cnt
if node == None:
return
else:
cnt += 1
self.traverse(node.left)
self.traverse(node.right)
def inorder_(self, node):
if node != None:
self.inorder_(node.left)
print(node.key, end=" ")
self.inorder_(node.right)
def inorder(self):
self.inorder_(self.root)
t = Tree()
for i in input().split():
if i == "0":
break
t.insert(int(i))
t.inorder()
Но, при сдаче в тестирующую систему, пишет, что неправильный ответ на 37 тестах из 60. В чём может быть проблема?