Intermediate·Concept·2 min read

Recursion and backtracking in Java

Practice this question

Problems to practice

  • Fibonacci
  • Factorial
  • Permutations
  • Subsets
  • N-Queens
  • Sudoku
  • Combination Sum

Example: subset generation

java
public void backtrack(int[] nums, int start, List<Integer> path, List<List<Integer>> result) {
    result.add(new ArrayList<>(path));

    for (int i = start; i < nums.length; i++) {
        path.add(nums[i]);
        backtrack(nums, i + 1, path, result);
        path.remove(path.size() - 1);
    }
}

Interview guidance

Base case is critical. Backtracking means explore a choice, then undo it.


Adapted from 15_DSA_JAVA.md · “6. Recursion and backtracking in Java”. Code examples are study fragments. Difficulty and core labels are editorial estimates; version-specific behavior should be checked against your project.