DIGITAL GURU
Java DSA Portfolio

Inorder Successor/Predecessor & Kth Smallest/Largest

Find Inorder Successor, Inorder Predecessor, and Kth Smallest/Largest element in BST.

Anuj Kumar Singh Written by Anuj Kumar Singh (Lead Engineer, 13+ yrs exp) 5 min read Verified Spring Boot 3+ Guide

Real-World Analogy

Inorder Successor is finding the next immediate number in line after a given value in a sorted list.

Successor & Kth Element Search

Inorder Successor is the smallest node greater than target. Kth smallest is found via Inorder traversal counter in $O(H + K)$ time.

Production Code Example:

KthSmallestDemo.java
public class KthSmallestDemo {
    private int count = 0, result = -1;
    public int kthSmallest(TreeTraversals.TreeNode root, int k) {
        inorder(root, k);
        return result;
    }
    private void inorder(TreeTraversals.TreeNode node, int k) {
        if (node == null || count >= k) return;
        inorder(node.left, k);
        count++;
        if (count == k) { result = node.val; return; }
        inorder(node.right, k);
    }
}

Key Complexity & Algorithmic Takeaways:

When implementing Inorder Successor/Predecessor & Kth Smallest/Largest in coding interviews and production applications, keep these core guidelines in mind:

  • Time Complexity Analysis: Always evaluate best-case, average-case, and worst-case time complexities ($O(1)$, $O(\log n)$, $O(n)$, $O(n \log n)$, $O(n^2)$).
  • Space Complexity & Memory Bounds: Account for auxiliary memory usage, call stack frame recursion overhead, and heap allocations.
  • Edge Cases & Validation: Test empty inputs, null pointers, single-element collections, duplicate values, and integer overflow bounds.
  • Optimal vs Naive Solutions: Start with a clear brute-force solution, then optimize using techniques like Hashing, Two Pointers, Windowing, or Dynamic Programming.

Summary Takeaway:

Mastering Inorder Successor/Predecessor & Kth Smallest/Largest provides the foundational problem-solving skills needed to pass technical coding interviews at top tech companies and write ultra-performant software systems.

Successor Formula

If node has a right child, its Inorder Successor is the leftmost node in its right subtree.