22.LeetCode 括号生成
package LeetCode;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
class Solution {
List<String>list=new ArrayList<>();
int n;
public List<String> generateParenthesis(int n) {
this.n=n;
helper("",0,0);
return list;
}
public void helper(String curr,int left,int right){
//递归终止
if (left==n && right==n){
list.add(curr);
return;
}
//剪枝
if(left>n || left<right) return; //right括号大于left边的括号
helper(curr+"(",left+1,right);
helper(curr+")",left,right+1);
}
}