Bird
Raised Fist0
DSA Typescriptprogramming~5 mins

BST Inorder Successor in DSA Typescript - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the inorder successor of a node in a Binary Search Tree (BST)?
The inorder successor of a node in a BST is the node with the smallest key greater than the given node's key. It is the next node visited in an inorder traversal.
Click to reveal answer
beginner
How do you find the inorder successor if the node has a right child?
If the node has a right child, the inorder successor is the leftmost node in the node's right subtree.
Click to reveal answer
intermediate
How do you find the inorder successor if the node has no right child?
If the node has no right child, the inorder successor is one of its ancestors. Specifically, it is the lowest ancestor whose left child is also an ancestor of the node.
Click to reveal answer
intermediate
What is the time complexity of finding the inorder successor in a BST?
The time complexity is O(h), where h is the height of the BST, because you may need to traverse up or down the tree along a path.
Click to reveal answer
beginner
In a BST, what does an inorder traversal produce?
An inorder traversal of a BST produces the nodes in ascending sorted order of their keys.
Click to reveal answer
What is the inorder successor of a node with a right subtree in a BST?
AThe leftmost node in the right subtree
BThe rightmost node in the left subtree
CThe parent node
DThe root node
If a node has no right child, how do you find its inorder successor?
AThere is no inorder successor
BFind the rightmost node in the left subtree
CFind the root node
DFind the lowest ancestor whose left child is also an ancestor of the node
What is the time complexity to find the inorder successor in a BST?
AO(1)
BO(h)
CO(n)
DO(log n)
What order does an inorder traversal of a BST produce?
ADescending order
BRandom order
CAscending order
DPreorder
Which node is the inorder successor of the maximum node in a BST?
ANo successor exists
BIts parent
CIts right child
DThe root node
Explain how to find the inorder successor of a node in a BST when the node has a right child and when it does not.
Think about the two cases separately: right subtree and ancestors.
You got /2 concepts.
    Describe the significance of inorder traversal in a BST and how it relates to the inorder successor.
    Consider the order nodes appear in inorder traversal.
    You got /2 concepts.

      Practice

      (1/5)
      1. What is the inorder successor of a node in a Binary Search Tree (BST)?
      easy
      A. The node with the smallest key greater than the given node's key
      B. The node with the largest key smaller than the given node's key
      C. The root node of the BST
      D. The left child of the given node

      Solution

      1. Step 1: Understand inorder traversal order

        Inorder traversal visits nodes in ascending order of their keys in a BST.
      2. Step 2: Define inorder successor

        The inorder successor of a node is the next node visited after it in inorder traversal, which is the smallest node with a key greater than the current node.
      3. Final Answer:

        The node with the smallest key greater than the given node's key -> Option A
      4. Quick Check:

        Inorder successor = next bigger node [OK]
      Hint: Inorder successor is next bigger node in sorted order [OK]
      Common Mistakes:
      • Confusing successor with predecessor
      • Thinking successor is always right child
      • Assuming successor is parent node
      2. Which of the following TypeScript function signatures correctly represents a function to find the inorder successor in a BST node?
      easy
      A. function inorderSuccessor(root: TreeNode | null, p: TreeNode): TreeNode | null
      B. function inorderSuccessor(p: TreeNode): TreeNode
      C. function inorderSuccessor(root: TreeNode): void
      D. function inorderSuccessor(root: TreeNode, p: TreeNode): number

      Solution

      1. Step 1: Analyze parameters needed

        To find inorder successor, we need the BST root and the target node p.
      2. Step 2: Analyze return type

        The function returns the successor node or null if none exists.
      3. Final Answer:

        function inorderSuccessor(root: TreeNode | null, p: TreeNode): TreeNode | null -> Option A
      4. Quick Check:

        Correct params and return type [OK]
      Hint: Successor function needs root and target node, returns node or null [OK]
      Common Mistakes:
      • Missing root parameter
      • Wrong return type (void or number)
      • Not allowing null root
      3. Given the BST below and the node with value 5, what is the inorder successor?
            6
           / \
          2   8
         / \   \
        0   4   9
           / \
          3   5
      
      medium
      A. Node with value 8
      B. Node with value 6
      C. Node with value 4
      D. Node with value 9

      Solution

      1. Step 1: Locate node 5 and check right subtree

        Node 5 has no right child, so successor is one of its ancestors.
      2. Step 2: Find lowest ancestor whose left child is ancestor of node 5

        Node 6 is the first ancestor where node 5 is in left subtree, so successor is node 6.
      3. Final Answer:

        Node with value 6 -> Option B
      4. Quick Check:

        Successor of 5 is 6 [OK]
      Hint: If no right child, go up to first bigger ancestor [OK]
      Common Mistakes:
      • Choosing right child of root instead of ancestor
      • Picking node 8 which is too big
      • Confusing predecessor with successor
      4. Consider this TypeScript code snippet to find the inorder successor of a node in a BST:
      function inorderSuccessor(root: TreeNode | null, p: TreeNode): TreeNode | null {
        let successor: TreeNode | null = null;
        while (root) {
          if (p.val < root.val) {
            successor = root;
            root = root.left;
          } else {
            if (p.val === root.val) {
              return successor;
            }
            root = root.right;
          }
        }
        return successor;
      }
      What is the bug in this code?
      medium
      A. It may cause infinite loop if root is null
      B. It incorrectly updates the successor when p.val > root.val
      C. It does not handle the case when node p has a right subtree
      D. It returns the predecessor instead of successor

      Solution

      1. Step 1: Understand code logic

        The code moves down the tree to find the smallest node greater than p.val, updating successor accordingly.
      2. Step 2: Identify missing case

        If p has a right subtree, the successor is the leftmost node in that subtree, but this code ignores that and only searches from root.
      3. Final Answer:

        It does not handle the case when node p has a right subtree -> Option C
      4. Quick Check:

        Right subtree check missing [OK]
      Hint: Check right subtree first for successor [OK]
      Common Mistakes:
      • Ignoring right subtree of p
      • Assuming successor always in ancestors
      • Confusing successor with predecessor
      5. You have a BST and want to find the inorder successor of a node p. The node p has a right child. Which of the following is the correct approach to find the inorder successor?
      hard
      A. Return the root of the BST
      B. Return the rightmost node in p's left subtree
      C. Return the parent of p
      D. Return the leftmost node in p's right subtree

      Solution

      1. Step 1: Check if p has right subtree

        If p has a right child, the inorder successor is the smallest node in that right subtree.
      2. Step 2: Find leftmost node in right subtree

        Traverse left children starting from p's right child until no more left child exists.
      3. Final Answer:

        Return the leftmost node in p's right subtree -> Option D
      4. Quick Check:

        Successor in right subtree's leftmost node [OK]
      Hint: Successor with right child = leftmost node in right subtree [OK]
      Common Mistakes:
      • Returning parent instead of leftmost right subtree node
      • Returning rightmost left subtree node
      • Returning root regardless of p
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard