【问题标题】:Recursion in binary tree to traverse the entire tree二叉树递归遍历整棵树
【发布时间】:2020-12-12 04:43:32
【问题描述】:

我正在研究二叉树。我在网上看到了一个遍历整个二叉树的代码。这是我得到的代码: '''

public void showAll(Node node)
{
    Node parent = node;
    if(parent != null)
    {
        System.out.println(" " + parent.person);
        showAll(parent.leftChild);
        showAll(parent.rightChild);
    }
}

'''

我不明白的是这个函数如何打印正确的孩子?根据代码每次调用函数时都会打印左孩子。代码永远不会到达正确的孩子。

【问题讨论】:

标签: java binary-tree


【解决方案1】:

这是后序遍历的教科书实现。也被一些人称为“自下而上”遍历。

对于每次迭代,打印最左边的节点,然后打印最右边的节点。如果父节点为空,则树超过最高节点,即算法已完成。

【讨论】:

    【解决方案2】:

    尝试使用具有 5 个节点的二叉树干运行代码。然后你可能会弄清楚。即使遇到问题,也请了解一下编译器如何调用函数或 stacktrace 究竟是什么。

    【讨论】:

    • “试一试并弄清楚”并不是真正的答案
    猜你喜欢
    • 2016-07-27
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 2013-07-23
    • 2022-11-02
    相关资源
    最近更新 更多