这是问题的链接:所有可能的完整二叉树。
给定一个整数n
,返回包含n
节点的所有可能的完整二叉树的列表。答案中每个树的每个节点都必须有节点。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;
}
}
TreeNode类:
/**
* 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;
}
}
在for(int k=0;i
假设我有一个简单的二叉树节点类,如下所示: 如何添加一个能够递归遍历任何大小的树的方法,从左到右访问每个现有节点,而无需重新访问已遍历的节点? 这行得通吗?
我有一个二叉树,每个节点上都有一个单词。 在另一个类中,我需要逐个访问节点,然后操作单词。从另一个类逐个访问节点的最佳方法是什么? 在我的币树类中,每个节点都有一个左子、右子和一个值(String)。我有三个方法,printinorder-,插入和find节点。查找节点接收一个字符串,并查看该字符串是否存储在任何节点值中。 我有另一个类,需要一个接一个地获取节点,但是我不确定从另一个类中获取的最佳
本节要讨论的是当给定 n(n>=0)个结点时,可以构建多少种形态不同的树。 如果两棵树中各个结点的位置都一一对应,可以说这两棵树相似。如果两棵树不仅相似,而且对应结点上的数据也相同,就可以说这两棵树等价。本节中,形态不同的树指的是互不相似的树。 前面介绍过,对于任意一棵普通树,通过孩子兄弟表示法的转化,都可以找到唯一的一棵 二叉树与之对应。所以本节研究的题目也可以转化成:n 个结点可以构建多少种形
问题查找具有n个节点的完整二叉树中的叶节点数。 我为上述问题编写了一个递归程序,每当我到达一个没有子节点的节点时,遍历树并增加叶节点的数量。但由于这棵树是一棵完整的二叉树,我认为这会使问题变得更容易,但我不知道如何解决。它是否可以简化为紧凑形式(类似于公式)。
开始为不平衡的BST结构编写删除函数。为第一种情况手动运行一些测试(节点没有子节点)。决定在大小为1的树上运行它(仅在根上),出于某种原因,它似乎没有按照我在本语句第3行期望的方式将根重新分配到: 然后,当我在单节点树上运行时,它应该只是
我遇到了这个问题,似乎在任何地方都找不到解决办法。 给定一个二叉树,其中每个节点都包含一个数字,表示其子树中剩余节点的数量,编写一个函数,返回第n个按顺序遍历的节点。 查找按序遍历的第n个节点相当简单,但如何使用关于左节点数的信息来改进该过程?