/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<TreeNode> allPossibleFBT(int N) {
List<TreeNode> res = new ArrayList<>();
// base case
if (N % 2 == 0) {
return res;
}
if (N == 1) {
res.add(new TreeNode(0));
return res;
}
// 左右子树节点数之和
N = N - 1;
for (int i = 1; i < N; i += 2) {
List<TreeNode> left = allPossibleFBT(i);
List<TreeNode> right = allPossibleFBT(N-i);
for (TreeNode nl : left) {
for (TreeNode nr : right) {
TreeNode cur = new TreeNode(0);
cur.left = nl;
cur.right = nr;
res.add(cur);
}
}
}
return res;
}
}
leecode-894-所有可能的满二叉树
最新推荐文章于 2024-04-03 22:43:18 发布