【问题标题】:How exactly does in order traversal of a BST using recursion work? [duplicate]使用递归的顺序遍历 BST 究竟是如何工作的? [复制]
【发布时间】:2016-09-21 02:50:28
【问题描述】:

我了解 BST 的顺序遍历的概念,但我对它的递归如何工作感到困惑。我对如何运行 print 语句和以 root.right 作为参数的递归调用感到困惑。我注意到 inOder(root.left) 将继续被调用以搜索 BST 中的最小值,但是当它达到 null 时 if 语句无法访问,因此我们无法跳回正确的节点。我只是想知道我们如何才能到达 if 语句中的代码底线。

public void inOrder(TreeNode root) { 
    if(root != null) { 
       inOrder(root.left); 
       System.out.printf("%d ",root.data); 
       inOrder(root.right); 
    } 
}

【问题讨论】:

    标签: java recursion binary-search-tree


    【解决方案1】:

    了解递归堆栈很重要。从左侧一直到内存中都有单独的方法调用。仅在要求左停时才开始打印。它首先打印左孩子,然后是父母,然后是从左下角开始的右孩子。

    【讨论】:

      猜你喜欢
      • 2013-03-09
      • 2013-07-06
      • 1970-01-01
      • 2012-01-26
      • 2019-10-12
      • 1970-01-01
      • 2021-01-27
      • 2021-07-05
      • 1970-01-01
      相关资源
      最近更新 更多