Barebones Binary Search Tree
By: a guest | Mar 10th, 2010 | Syntax:
Python | Size: 0.77 KB | Hits: 110 | Expires: Never
def delete_node(parent, node, value):
if value < node.value:
delete_node(node, node.left, value)
elif value > node.value:
delete.node(node, node.right, value)
else:
if node.left and node.right: # if both children exist
pass
elif node.left or node.right: # if one child exists
if node.left: # left child exists
if parent.left.value == value:
parent.left = node.left
elif parent.right.value == value:
parent.right = node.left
else: # right child exists
if parent.left.value == value:
parent.left = node.right
elif parent.right.value == value:
parent.right = node.right
else: # no children
if parent.left.value == value:
parent.left = None
elif parent.right.value == value:
parent.right = None