supprimer le nœud dans l'arbre de recherche binaires python

Le code ci-dessous est mon œuvre pour mon arbre de recherche binaire, et je veux implémenter la méthode delete pour supprimer le nœud. Ci-dessous est mon œuvre, mais lorsque j'effectue

bst = BSTRee()
bst.insert(5)
bst.insert(11)
bst.insert(3)
bst.insert(4)
bst.insert(12)
bst.insert(2)
bst.delete(3)

lorsque j'appelle la méthode delete, il n'a rien fait. Quelqu'un peut-il m'aider à le résoudre. Le lien ci-dessous mon code sur github. Je vous remercie beaucoup pour votre aide.
https://github.com/hly189/sort/blob/master/tree/BST.py

class BSTreeNode
def ____init__(self, value): 
self.value = value 
self.left = None 
self.right = None
def insert(self,key): 
if self.value == key: 
print ("the node already exists")
return False 
elif self.value > key: 
if self.left is not None: 
return self.left.insert(key)
else: 
self.left = BSTreeNode(key)
return True
else: 
if self.right is not None: 
return self.right.insert(key)
else: 
self.right = BSTreeNode(key)
return False
def delete(self, node, k):
if node == None: 
return None
elif node.value == k: 
if node.left is None and node.right is None: 
return None
elif node.left is None: 
return node.right
elif node.right is None: 
return node.left 
else: 
node.value = get_min(node.right)
node.right.delete(node.right,node.value)
elif k < node.value: 
node.left.delete(node.left,k)
else: 
node.right.delete(node.right,k)
return node
class BSTree: 
def __init__(self): 
self.root = None 
def delete(self,key): 
self.root.delete(self.root,key)
def insert(self,data): 
if self.root: 
self.root.insert(data)
else: 
self.root = BSTreeNode(data)
return True 
def find_min(self,node):
current_node = node
while current_node.left: 
current_node = current_node.left
return current_node
def get_min(node): 
current_node = node
while current_node.left: 
current_node = current_node.left
return str(current_node.value)
def print_helper(root, indent):
if root is not None:
print_helper(root.right, indent + "   ")
print (indent + str(root.value))
print_helper(root.left, indent + "   ")
def print_tree(root):
print_helper(root, "")
Il ne ressemble pas à BSTreeNode.delete() ne fait rien. Il renifle autour et renvoie quelque chose, mais je ne vois pas d'endroit où il fait effectivement de tout changement à votre arbre.
pouvez-vous svp m'aider à le résoudre, puisque j'ai travaillé sur ce projet pendant 4 heures?

OriginalL'auteur Alexander | 2015-10-31