public class Solution { public List<String> generateParenthesis(int n) { List<String> ret=new ArrayList<String>(); generateParenthesis("", 0, 2*n, ret); return ret; } void generateParenthesis(String cur, int count, int n, List<String> list) { if(cur.length()==n&&count==0) { list.add(cur); return; } if(count<n&&cur.length()<n) generateParenthesis(cur+"(", count+1, n, list); if(count>0&&cur.length()<n) generateParenthesis(cur+")", count-1, n, list); } }