diff --git a/data_structures/9_Binary_Tree_2/binary_tree_part_2.py b/data_structures/9_Binary_Tree_2/binary_tree_part_2.py index 8a4a4a5..17a8ff3 100644 --- a/data_structures/9_Binary_Tree_2/binary_tree_part_2.py +++ b/data_structures/9_Binary_Tree_2/binary_tree_part_2.py @@ -49,24 +49,27 @@ def in_order_traversal(self): return elements def delete(self, val): - if val < self.data: + #traverse till you find the node to delete + if val < self.data: #then go left if self.left: self.left = self.left.delete(val) - elif val > self.data: + elif val > self.data: #then go right if self.right: self.right = self.right.delete(val) - else: - if self.left is None and self.right is None: + else:#found node to delete i.e. val = self.data + if self.left is None and self.right is None: #case of deleting leaf node return None - elif self.left is None: + elif self.left is None: #case of deleting node with one child return self.right - elif self.right is None: + elif self.right is None: #case of deleting node with one child return self.left + #case of deleting node with two children min_val = self.right.find_min() self.data = min_val self.right = self.right.delete(min_val) - + + #if not leaf, then you have to return self return self def find_max(self): pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy