任何人都可以向我解释这是如何工作的以及为什么每个语句的顺序对于后序和预序都很重要

问题描述 投票:0回答:1

private String getInOrder(TreeNode curNode) {

    if (curNode == null){
        return "";
    }

    String result = "";

    result += getInOrder(curNode.left);
    
    result += curNode.data + " ";

    result += getInOrder(curNode.right);

    return result;

    
}

只是一个问题,它起作用只是不知道为什么

java binary-search-tree tree-traversal recursive-datastructures
1个回答
0
投票

您提供的代码是递归函数的实现,该函数按顺序遍历二叉树并返回所访问节点中值的字符串表示形式。

1.该函数以 TreeNode 作为输入。

2.如果输入节点为null(没有更多的节点可以访问),函数返回一个空字符串。

3.如果输入节点不为空,该函数首先通过调用带有curNode.left的getInOrder函数在输入节点的左子节点上递归调用自身。这将导致函数按顺序遍历输入节点的左子树。

4.函数然后将当前节点的值(curNode.data)和一个空格字符附加到结果字符串。这表示按顺序访问当前节点。

5. 最后,该函数通过使用 curNode.right 调用 getInOrder 函数,在输入节点的右子节点上递归调用自身。这将导致函数按顺序遍历输入节点的右子树。 该函数返回结果字符串。

© www.soinside.com 2019 - 2024. All rights reserved.