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));
}