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

Tell us what’s happening:

Describe your issue in detail here.

it says do this, can someone please explain why it isn’t working:

Replace pass with an if statement that checks if the current node (node ) is not empty. Then, recursively call _inorder_traversal with node.left and result as the arguments.

.
It says:

Sorry, your code does not pass. Hang in there.

Your check condition should be if node.

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

    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)
        else:
            if node.left is None:
                return node.right
            elif node.right is None:
                return node.left

            node.key = self._min_value(node.right)
            node.right = self._delete(node.right, node.key)
        return node

    def _min_value(self, node):
        while node.left is not None:
            node = node.left
        return node.key

    def inorder_traversal(self):
        result = []
        self._inorder_traversal(self.root, result)
        return result

# User Editable Region

    def _inorder_traversal(self, node, result):
        if node is not None:
            self._inorder_traversal(node.left, result)

# 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/119.0.0.0 Safari/537.36 OPR/105.0.0.0

Challenge Information:

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

You appear to have created this post without editing the template. Please edit your post to Tell us what’s happening in your own words.

I’m an idiot, it doesn’t need the “is not None” at the end of the if statement

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.