I’m not sure what I am missing, but I am having trouble returning the node.right to replace the left child at the end of the code…
def _insert(self, node, key):
if node is None:
return TreeNode(key)
if key < node.key:
node.left = self._insert(node.left, key)
elif key > node.key:
node.right = self._insert(node.right, key)
return node
def search(self, key):
return self._search(self.root, key)
def _search(self, node, key):
if node is None or node.key == key:
return node
if key < node.key:
return self._search(node.left, key)
return self._search(node.right, key)
def delete(self, key):
self.root = self._delete(self.root, key)
def _delete(self, node, key):
if node is None:
return node
if key < node.key:
node.left = self._delete(node.left, key)
elif key > node.key:
node.right = self._delete(node.right, key)
User Editable Region
else:
if node.left == None:
return node.right
User Editable Region
User Editable Region
else:
if node.left == None:
return node.right
User Editable Region
### Your browser information:
User Agent is: <code>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36</code>
### Challenge Information:
Learn Tree Traversal by Building a Binary Search Tree - Step 35
https://www.freecodecamp.org/learn/scientific-computing-with-python/learn-tree-traversal-by-building-a-binary-search-tree/step-35