Java 打印树的路径 static void printallpath fromRootToLeaf(二进制树,ArrayList路径) { if(tree.isEmpty()) { System.out.println(“树为空”); 返回; } add(tree.root()); if(tree.left().isEmpty()&&tree.right().isEmpty()) { System.out.println(路径); 打印和(路径); //返回; } 其他的 { PrintAllPathFromRootToLeaf(tree.left(),new ArrayList(path)); PrintAllPathFromRootToLeaf(tree.right(),new ArrayList(path)); } }
打印路径时,它只打印最后一条路径,或者只打印树中的一条路径。有人知道为什么吗 谢谢大家! 它只打印最后一条路径,或者只打印我树中的一条路径 这是因为您已选择使用以下行执行此操作:Java 打印树的路径 static void printallpath fromRootToLeaf(二进制树,ArrayList路径) { if(tree.isEmpty()) { System.out.println(“树为空”); 返回; } add(tree.root()); if(tree.left().isEmpty()&&tree.right().isEmpty()) { System.out.println(路径); 打印和(路径); //返回; } 其他的 { PrintAllPathFromRootToLeaf(tree.left(),new ArrayList(path)); PrintAllPathFromRootToLeaf(tree.right(),new ArrayList(path)); } },java,tree,binary-tree,binary-search-tree,binary-search,Java,Tree,Binary Tree,Binary Search Tree,Binary Search,打印路径时,它只打印最后一条路径,或者只打印树中的一条路径。有人知道为什么吗 谢谢大家! 它只打印最后一条路径,或者只打印我树中的一条路径 这是因为您已选择使用以下行执行此操作: static void printAllPathsFromRootToLeaf (BinaryTree<Integer> tree, ArrayList<Integer> path) { if (tree.isEmpty()) { System.out.pr
static void printAllPathsFromRootToLeaf (BinaryTree<Integer> tree, ArrayList<Integer> path)
{
if (tree.isEmpty())
{
System.out.println("Tree is Empty");
return;
}
path.add(tree.root());
if (tree.left().isEmpty() && tree.right().isEmpty())
{
System.out.println(path);
printSum(path);
//return;
}
else
{
printAllPathsFromRootToLeaf(tree.left(),new ArrayList(path));
printAllPathsFromRootToLeaf(tree.right(),new ArrayList(path));
}
}
如果节点是叶节点,则打印它
将其添加到else语句中
if (tree.left().isEmpty() && tree.right().isEmpty())
else
{
System.out.println(path); //Not exactly sure what printing an ArrayList like this does, but you say it is doing what you want.
printSum(path);
printAllPathsFromRootToLeaf(tree.left(),new ArrayList(path));
printAllPathsFromRootToLeaf(tree.right(),new ArrayList(path));
}