classSolution { public List<String> generateParenthesis(int n) { List<String> ans = newArrayList<>(); generateParenthesis("", n, n, ans); return ans; }
publicvoidgenerateParenthesis(String str, int left, int right, List<String> ans) { if (left == 0 && right == 0){ ans.add(str); return; } if (left == right){ generateParenthesis(str + "(", left - 1, right, ans); }else { if (left > 0){ generateParenthesis(str + "(", left - 1, right, ans); } generateParenthesis(str + ")", left, right - 1, ans); } } }