Question: Case 1 : Deleting a node with no children Case 2 : Deleting a node with 1 child Case 3 : Deleting a node with
Case : Deleting a node with no children
Case : Deleting a node with child
Case : Deleting a node with children
def initself value:
self.value value
self.left None
self.right None
class BST:
def initself:
self.root None
def insertself value:
if self.root is None:
self.root TreeNodevalue
else:
self.insertrecursivelyselfroot, value
def insertrecursivelyself node, value:
if value node.value:
if node.left is None:
node.left TreeNodevalue
else:
self.insertrecursivelynodeleft, value
elif value node.value:
if node.right is None:
node.right TreeNodevalue
else:
self.insertrecursivelynoderight, value
def deleteself value:
self.root self.deleterecursivelyselfroot, value
def deleterecursivelyself node, value:
if node is None:
return node
if value node.value:
node.left self.deleterecursivelynodeleft, value
elif value node.value:
node.right self.deleterecursivelynoderight, value
else:
# Case : Node with no children leaf node
if node.left is None and node.right is None:
return None
# Case : Node with one child
elif node.left is None:
return node.right
elif node.right is None:
return node.left
# Case : Node with two children
else:
# Get the inorder successor smallest in the right subtree
minlargernode self.minvaluenodenoderight
node.value minlargernode.value
node.right self.deleterecursivelynoderight, minlargernode.value
return node
def minvaluenodeself node:
current node
while current.left is not None:
current current.left
return current
def inordertraversalself node:
if node is not None:
self.inordertraversalnodeleft
printnodevalue, end
self.inordertraversalnoderight
# Example usage
bst BST
bstinsert
bstinsert
bstinsert
bstinsert
bstinsert
bstinsert
bstinsert
printInorder Traversal before deletion:"
bstinordertraversalbstroot
print
# Deleting nodes
bstdelete # Case : Deleting a node with no children
bstdelete # Case : Deleting a node with one child
bstdelete # Case : Deleting a node with two children
printInorder Traversal after deletion:"
bstinordertraversalbstroot
print
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
