Learn Tree Traversal by Building a Binary Search Tree - Step 25

Tell us what’s happening:

I really don’t know what I’m doing wrong the code doesn’t pass no matter what, 1. You should prepend the return statement to your _search() call. I think I’m doing what the step is asking, any advice?

Your code so far


class TreeNode:

    def __init__(self, key):
        self.key = key
        self.left = None
        self.right = None


class BinarySearchTree:

    def __init__(self):
        self.root = None

    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 insert(self, key):
        self.root = self._insert(self.root, key)
        

# User Editable Region

    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 search(self, key):
        self._search(self.root, key)
        return self._search()
        


# User Editable Region

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0

Challenge Information:

Learn Tree Traversal by Building a Binary Search Tree - Step 25

Hi @nicobox

Here is a comparison of the original code and your code.

The code in blue is the original code, the code in red is your code.
The code in magenta is the overlap.

image

Prepend means to add before something.
You created a new line of code instead.

Happy coding

1 Like

Thanks, boss, I won’t forget what prepend means anymore