二叉树遍历-递归

时间:2019-02-14 22:50:17

标签: recursion tree binary traversal

我通常尝试遵循树遍历递归,所以这不是特定于有序遍历的,但是我将针对此问题使用有序遍历代码:

   void inOrderTraversal(BinNode root)
    {  if (root != null) {
        System.out.println("left: "+root.value);
        inOrderTraversal(root.left);
        System.out.println(root.value);
        System.out.print("left is empty: ");
        System.out.println(root.left ==null);
        System.out.print("right is empty: ");
        System.out.println(root.right ==null);
        inOrderTraversal(root.right);

    }
}

使用的输入数据如下:

          5
         / \
        4   5
       / \   \
      4   4   5  

here提供了代码输出。

在附加的输出文件中,在输出的第四行(该节点被访问),代码位于左侧子树的末尾。下一个递归调用在子树的右边,为null。但是在第8行和第9行的输出中,代码以某种方式返回到树的第2级,左,右节点返回的值都不为空。

当没有对先前节点的引用或指针时(例如在链表中),递归如何回到树上?

0 个答案:

没有答案