Java 泛型树遍历

标签 java tree traversal

我有一个 Java 问题要解决。我有一棵需要遍历的树。在这里:

        1
     /     \
   1 2 3  1 2 3      
 /   |  \    \
123 123 123  same for those three nodes

现在需要遍历的方式是从根开始,然后遍历最深的最左节点(此处为 1)及其最左叶节点(1)。之后它应该再次从根开始跟踪所有数字,这次到达同一个最深的最左边节点的下一个叶子.. 依此类推,即从顶部开始,每次一个接一个地到达所有剩余的叶子那个节点。在最左边的节点的所有叶子都被跟踪之后,它应该照常进行(从顶部开始),现在移动到下一个未邀请的节点(这里是 2).. 等等所有树。所以前 6 条轨迹是:

111 112 113 121 122 123 ……等等

所有被追踪的号码都需要按照上述方式依次追踪记录。任何人都可以帮助解决如何实现它的算法?谢谢。

最佳答案

您需要的是树遍历算法。

void traverse(Node root, String path) {
    path += root.getValue();
    for (Node child : root.getChildren())
        traverse(child, path);

    // end of current traversal
    if (root.getChildren().isEmpty())
        System.out.print(path + " ");
}

关于Java 泛型树遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10372036/

相关文章:

java - 在 Facelets 中使用 JSP 2.0 标记

Java记录器问题

java - 关闭与 MySQL 的连接时出现 JDBC Socket 异常

javascript - 给定一个级别,如何返回树的所有子节点?

algorithm - 如何逆序遍历这棵树

Python;链表和遍历!

java - 使用Java Play发送HTTP请求(WSClient初始化)

java - 树遍历

javascript - Bookmarklet目标页面DOM遍历。如何?

algorithm - 暴力数组遍历的复杂度