LeetCode22—括号生成Java
时间: 2025-07-06 16:47:50 浏览: 10
### LeetCode 22 括号生成 Java 实现
#### 回溯法解决括号生成问题
回溯算法是一种通过逐步构建解决方案并在发现错误时撤销部分选择的算法[^3]。对于这个问题来说,回溯法会通过添加左括号 `(` 和右括号 `)` 逐步构建有效的括号组合。
以下是具体的Java实现:
```java
import java.util.ArrayList;
import java.util.List;
class Solution {
public List<String> generateParenthesis(int n) {
List<String> result = new ArrayList<>();
backtrack(result, "", 0, 0, n);
return result;
}
private void backtrack(List<String> result, String current, int open, int close, int max) {
if (current.length() == max * 2) { // 如果当前字符串长度等于最大可能长度,则加入结果列表
result.add(current);
return;
}
if (open < max) // 若左括号数量小于n,则可以继续放置左括号
backtrack(result, current + "(", open + 1, close, max);
if (close < open) // 只有当右括号的数量少于左括号时才能放右括号
backtrack(result, current + ")", open, close + 1, max);
}
}
```
此代码定义了一个名为`Solution` 的类,在其中实现了两个函数:一个是公共接口`generateParenthesis()`用于初始化参数并启动递归;另一个私有的辅助函数`backtrack()`负责实际执行递归逻辑来生成所有合法的括号序列。
阅读全文
相关推荐


















