我在学习二叉树。我在网上看到了一个遍历整个二叉树的代码。这是我得到的密码:''
public void showAll(Node node)
{
Node parent = node;
if(parent != null)
{
System.out.println(" " + parent.person);
showAll(parent.leftChild);
showAll(parent.rightChild);
}
}
'''
我不明白的是这个函数如何打印正确的子对象?根据代码,每次调用函数时都会打印left child。代码永远不会到达正确的子级。
2条答案
按热度按时间u0sqgete1#
试着用有5个节点的二叉树来运行代码。然后你可能就会明白了。即使这样,如果您面临问题,也要了解一点编译器如何调用函数或stacktrace实际上是什么。
2cmtqfgy2#
这是一个后序遍历的教科书实现。也被一些人称为“自下而上”遍历。
对于每个迭代,打印最左边的节点,然后打印最右边的节点。如果父节点为空,则树超过最高节点,即算法已完成。