我是Javascript的新手。下面我有一个代码,它使用inorder遍历方法递归遍历我的树并使用document.write打印结果。我的问题是,而不是打印结果,我只想返回结果以供进一步使用。我该怎么办?
function inOrder(node) {
if (!(node == null)) {
inOrder(node.left);
document.write(node.toString());
inOrder(node.right);
}
}
感谢您的帮助。非常感谢=)
答案 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;
}