返回树顺序遍历结果

时间:2016-05-31 11:36:44

标签: javascript data-structures

我是Javascript的新手。下面我有一个代码,它使用inorder遍历方法递归遍历我的树并使用document.write打印结果。我的问题是,而不是打印结果,我只想返回结果以供进一步使用。我该怎么办?

function inOrder(node) {
    if (!(node == null)) {
        inOrder(node.left);
        document.write(node.toString());
        inOrder(node.right);
    }
}

感谢您的帮助。非常感谢=)

1 个答案:

答案 0 :(得分:2)

您可以使用数组作为结果

function getAllNodes(node) {

    function inOrder(node) {
        if (node) {
            inOrder(node.left);
            result.push(node.toString()); // push instead of output.
            inOrder(node.right);
        }
    }

    var result = [];
    inOrder(node);
    return result;
}

另一种解决方案是向函数添加参数并将结果收集到数组中。

function inOrder(node, result) {
    if (node) {
        inOrder(node.left, result);
        result.push(node.toString());
        inOrder(node.right, result);
    }
}

var result = [];
inOrder(node, result);

结果为字符串

function getAllNodes(node) {

    function inOrder(node) {
        if (node) {
            inOrder(node.left);
            result += node.toString() + ', ';
            inOrder(node.right);
        }
    }

    var result = '';
    inOrder(node);
    return result;
}