DSA: BST

For Interview


Progress
Reviewed: 0%
8 Tasks

Welcome to "Mastering Binary Search Trees (BST)," a comprehensive course designed to equip you with the skills and knowledge needed to understand, implement, and master Binary Search Trees. Binary Search Trees are a fundamental data structure widely used in computer science for efficient searching, insertion, and deletion operations.


  • Day 1
  • Maximum Depth Of BST

    Concept:



    Resources:



    Assignments:


    Given the root of a binary tree, return its maximum depth.
    A binary tree's maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

    Constraints:
    The number of nodes in the tree is in the range [0, 10^4].
    -100 <= Node.val <= 100

    Example 1:
    Input: root = [3,9,20,null,null,15,7]
    Output: 3

    Example 2:
    Input: root = [1,null,2]
    Output: 2



  • Day 2
  • Convert Sorted Array to Height-Balanced Binary Search Tree

    Concept:



    Resources:



    Assignments:


    Given an integer array nums where the elements are sorted in ascending order, convert it to a height-balanced binary search tree.

    Constraints:
    1 <= nums.length <= 10^4
    -10^4 <= nums[i] <= 10^4
    nums is sorted in a strictly increasing order.

    Example 1:
    Input: nums = [-10,-3,0,5,9]
    Output: [0,-3,9,-10,null,5]
    Explanation: [0,-10,5,null,-3,null,9] is also accepted:

    Example 2:
    Input: nums = [1,3]
    Output: [3,1]
    Explanation: [1,null,3] and [3,1] are both height-balanced BSTs.



  • Day 5
  • Convert Sorted List to BST

    Concept:



    Resources:



    Assignments:


    Given the head of a singly linked list where elements are sorted in ascending order, convert it to a height-balanced binary search tree.

    (A height-balanced binary tree is a binary tree in which the depth of the two subtrees of every node never differs by more than one.)



  • Day 6
  • Valid BST

    Concept:



    Resources:



    Assignments:


    Given the root of a binary tree, determine if it is a valid binary search tree (BST).

    A valid BST is defined as follows:

    The left subtree of a node contains only nodes with keys less than the node's key.
    The right subtree of a node contains only nodes with keys greater than the node's key.
    Both the left and right subtrees must also be binary search trees.

    Constraints:
    The number of nodes in the tree is in the range [1, 10^4]. -2^31 <= Node.val <= 2^31 - 1

    Example



  • Day 7
  • Split BST

    Concept:



    Resources:



    Assignments:


    Given the root of a binary search tree (BST) and an integer target, split the tree into two subtrees where one subtree has nodes that are all smaller or equal to the target value, while the other subtree has all nodes that are greater than the target value. It Is not necessarily the case that the tree contains a node with the value target.
    Additionally, most of the structure of the original tree should remain. Formally, for any child c with parent p in the original tree, if they are both in the same subtree after the split, then node c should still have the parent p.
    Return an array of the two roots of the two subtrees.

    Constraints:
    The number of nodes in the tree is in the range [1, 50].
    0 <= Node.val, target <= 1000

    Example:



  • Day 8
  • Find Mode in Binary Search Tree

    Concept:



    Resources:



    Assignments:


    Given the root of a binary search tree (BST) with duplicates, return all the mode(s) (i.e., the most frequently occurred element) in it.

    If the tree has more than one mode, return them in any order.

    Assume a BST is defined as follows:

    The left subtree of a node contains only nodes with keys less than or equal to the node's key.
    The right subtree of a node contains only nodes with keys greater than or equal to the node's key.
    Both the left and right subtrees must also be binary search trees.

    Constraints:
    The number of nodes in the tree is in the range [1, 10^4].
    -10^5 <= Node.val <= 10^5

    Example 1:

    Input: root = [1,null,2,2]
    Output: [2]

    Example 2:

    Input: root = [0]
    Output: [0]



  • Day 9
  • Insert Into a BST

    Concept:



    Resources:



    Assignments:


    You are given the root node of a binary search tree (BST) and a value to insert into the tree. Return the root node of the BST after the insertion. It is guaranteed that the new value does not exist in the original BST.
    Notice that there may exist multiple valid ways for the insertion, as long as the tree remains a BST after insertion. You can return any of them.

    Constraints:

    The number of nodes in the tree will be in the range [0, 10^4].
    -10^8 <= Node.val <= 10^8
    All the values Node.val are unique.
    -10^8 <= val <= 10^8
    It's guaranteed that val does not exist in the original BST.

    Example 1:
    Input: root = [4,2,7,1,3], val = 5
    Output: [4,2,7,1,3,5]
    Explanation: Another accepted tree is:

    Example 2:
    Input: root = [40,20,60,10,30,50,70], val = 25
    Output: [40,20,60,10,30,50,70,null,null,25]

    Example 3:
    Input: root = [4,2,7,1,3,null,null,null,null,null,null], val = 5
    Output: [4,2,7,1,3,5]



  • Day 10
  • Search in a BST

    Concept:



    Resources:



    Assignments:


    You are given the root of a binary search tree (BST) and an integer val.
    Find the node in the BST that the node's value equals val and return the subtree rooted with that node. If such a node does not exist, return null.

    Constraints:

    The number of nodes in the tree is in the range [1, 5000].
    1 <= Node.val <= 10^7
    root is a binary search tree.
    1 <= val <= 10^7

    Example 1:
    Input: root = [4,2,7,1,3], val = 2
    Output: [2,1,3]

    Example 2:
    Input: root = [4,2,7,1,3], val = 5
    Output: []



×

Let's Go!

Congratulations on getting started. Here is a little reward for you...

×

10

Going to the next task in