java – 递归前序遍历算法如何回到父级?

public static void preorder(Node root) {
    if(root == null) return;

    root.printValue();
    preorder(root.getLeft());
    preorder(root.getRight());
}

我试图多次通过这个功能,但我仍然无法弄清楚如何遍历所有左边的孩子后,算法会回到最近的祖先(父母).有人可以向我解释一下.

最佳答案
在void方法结束时有一个隐式返回:

public static void preorder(Node root) {
    if(root == null) return;

    root.printValue();
    preorder(root.getLeft());
    preorder(root.getRight());
    return;
}

您总是返回调用您的方法.因此,如果父进程的方法调用再次调用子进程,那么当子进程的方法调用返回时,它将返回父进程.对?

希望有道理.就像Kon说的那样,你应该在纸上运行算法.或者,更好的是,如果您知道如何使用调试器,则可以在调试器中单步执行代码并查看其工作原理.

转载注明原文:java – 递归前序遍历算法如何回到父级? - 代码日志