C#C
C#3y ago
moshimoshi

✅ Finding node in binary search tree

Hi can someone help me understand the syntax of this code - I am struggling with understanding why we need to define the instance of current node in the iterative method but dont need to do so in the recursive method.

Thanks! 🙂

 //Recursive
    public Node? Find(int key) {
            // Base Case: Current node is null
            if (this == null)
                return null;

            // Base Case: Current node is the key
            if (this == key)
                return this;

            if (this < key) {
                return this.right.Find(key);
            }

            else return this.left.Find(key);
        }

        //Iterative
        public Node? Find(int key)
        {
            Node current = this;

            while (current != null) {

                if (current == key) {
                    return current;
                }

                else if (current < key) {
                    return current.right;
                }

                else (current > key) {
                    return current.left;
                }
            }

            return null;
        }
Was this page helpful?