【问题标题】:Printing Paths for Trees打印树的路径
【发布时间】:2013-04-02 06:19:12
【问题描述】:
   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));
    }
}

当打印路径时,它只打印最后一条路径,或者只打印我树中的一条路径。有人知道为什么吗??

谢谢!

【问题讨论】:

    标签: java tree binary-tree binary-search-tree binary-search


    【解决方案1】:

    它只打印最后一条路径,或者它只打印我的树中的一条路径

    这是因为你已经选择了这样做:

    if (tree.left().isEmpty() && tree.right().isEmpty())
    

    如果节点是叶节点,则打印它。

    将此添加到 else 语句中

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-04
      • 1970-01-01
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 2016-08-29
      相关资源
      最近更新 更多