mirror of
https://github.com/autistic-symposium/master-algorithms-py.git
synced 2025-04-29 20:26:07 -04:00
Update bst_delete_node.py
This commit is contained in:
parent
122a535241
commit
a3ce5db3a5
@ -7,7 +7,7 @@ def successor(root):
|
|||||||
|
|
||||||
root = root.right
|
root = root.right
|
||||||
while root.left:
|
while root.left:
|
||||||
root = root.left
|
root = root.left
|
||||||
return root.val
|
return root.val
|
||||||
|
|
||||||
|
|
||||||
@ -15,20 +15,20 @@ def predecessor(root):
|
|||||||
|
|
||||||
root = root.left
|
root = root.left
|
||||||
while root.right:
|
while root.right:
|
||||||
root = root.right
|
root = root.right
|
||||||
return root.val
|
return root.val
|
||||||
|
|
||||||
|
|
||||||
def delete_node(root, key):
|
def delete_node(root, key):
|
||||||
|
|
||||||
if not root:
|
if root is None:
|
||||||
return root
|
return root
|
||||||
|
|
||||||
if key > root.val:
|
if key > root.val:
|
||||||
root.right = deleteNode(root.right, key)
|
root.right = delete_node(root.right, key)
|
||||||
|
|
||||||
elif key < root.val:
|
elif key < root.val:
|
||||||
root.left = deleteNode(root.left, key)
|
root.left = delete_node(root.left, key)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
if not (root.left or root.right):
|
if not (root.left or root.right):
|
||||||
@ -36,11 +36,11 @@ def delete_node(root, key):
|
|||||||
|
|
||||||
elif root.right:
|
elif root.right:
|
||||||
root.val = successor(root)
|
root.val = successor(root)
|
||||||
root.right = deleteNode(root.right, root.val)
|
root.right = delete_node(root.right, root.val)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
root.val = predecessor(root)
|
root.val = predecessor(root)
|
||||||
root.left = deleteNode(root.left, root.val)
|
root.left = delete_node(root.left, root.val)
|
||||||
|
|
||||||
return root
|
return root
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user