Instagram
youtube
Facebook
Twitter

Binary Search Tree: Insertion| Tree

Task(easy)

You are given a pointer to the root of a binary search tree and values to be inserted into the tree. Insert the values into their appropriate position in the binary search tree and return the root of the updated binary tree. You just have to complete the function.

Input Format

You are given a function,

Node * insert (Node * root ,int data) {

}

Constraints

No. of nodes in the tree  <= 500

Output Format

Return the root of the binary search tree after inserting the value into the tree.

Sample Input   

        4

       / \

      2   7

     / \

    1   3

The value to be inserted is 6.

Sample Output  

         4

       /   \

      2     7

     / \   /

    1   3 6

SOLUTION 1

def insert(self, val):

        new_node = Node(val)

        if self.root is None:

            self.root = new_node

            return self.root

        curr = self.root

        while True:

            if new_node.info < curr.info:

                if curr.left is None:

                    curr.left = new_node

                    break

                else:

                    curr = curr.left

            elif new_node.info > curr.info:

                if curr.right is None:

                    curr.right = new_node

                    break

                else:

                    curr = curr.right

        return self.root