【发布时间】:2021-10-15 17:48:15
【问题描述】:
这是问题的链接:All Possible Full Binary Trees。
给定一个整数
n,返回所有可能的完整二叉树的列表和n节点。答案中每棵树的每个节点都必须有Node.val == 0。答案的每个元素都是一棵可能的树的根节点。您可以按任意顺序返回最终的树列表。
完全二叉树是每个节点正好有
0或2子节点的二叉树。示例 1:
输入:
n = 7输出:
[[0,0,0,null,null,0,0,null,null,0,0], [0,0,0,null,null,0,0,0,0], [0,0,0,0,0,0,0], [0,0,0,0,0,null,null,null,null,0,0], [0,0,0,0,0,null,null,0,0]]
在这个问题中,我必须返回所有可能的完整二叉树的列表,这是我的解决方案的 java 代码,任何人都可以帮助我找出我的代码出错的地方,对于每个输入,我的代码都是空的列表。
class Solution {
public List<TreeNode> allPossibleFBT(int n) {
if (n == 1) {
List<TreeNode> list = new ArrayList<TreeNode>();
list.add(new TreeNode(0));
return list;
}
List<TreeNode> left;
List<TreeNode> right;
List<TreeNode> all = new ArrayList<TreeNode>();
for (int i = 1; i < n; i = i + 2) {
left = allPossibleFBT(i);
right = allPossibleFBT(n - i - 1);
for (int k = 0; i < left.size(); k++) {
for (TreeNode treeNode : right) {
TreeNode root = new TreeNode(0);
root.left = left.get(k);
root.right = treeNode;
all.add(root);
}
}
}
return all;
}
}
树节点类:
/**
* Definition for a binary tree node.
*/
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() { }
TreeNode(int val) {
this.val = val;
}
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
【问题讨论】:
-
能否请您提供您的 TreeNode 类?
-
是的,我提供了treenode类,请再次查看,我请求您使用我提供的链接访问问题一次。
-
答案显示你打错了。投票结束。
标签: java recursion tree binary-tree combinations