bugfree Icon
interview-course
interview-course
interview-course
interview-course
interview-course
interview-course
interview-course
interview-course

Leetcode Problem 95. Unique Binary Search Trees II

95. Unique Binary Search Trees II

Leetcode Solutions

Recursive Dynamic Programming

  1. Define a recursive function generateTreesFromRange(start, end) that returns a list of all possible BSTs that can be formed using values from start to end.
  2. If start > end, return a list containing null (base case).
  3. Initialize an empty list allTrees to store the BSTs.
  4. Iterate from i = start to end, treating i as the root value.
  5. Recursively call generateTreesFromRange(start, i - 1) to generate all left subtrees.
  6. Recursively call generateTreesFromRange(i + 1, end) to generate all right subtrees.
  7. For each combination of left and right subtree, create a new tree with i as the root and add it to allTrees.
  8. Return allTrees.
  9. Call generateTreesFromRange(1, n) to generate all BSTs for the given n.
UML Thumbnail

Iterative Dynamic Programming

Ask Question

Programming Language
image/screenshot of info(optional)
Full Screen
Loading...

Suggested Answer

Answer
Full Screen
Copy Answer Code
Loading...