我正在处理leetcode中的问题。代码是用javascript编写的。
https://leetcode.com/problems/two-sum-iv-input-is-a-bst/description/
每当我测试代码时它返回undefined,但是当我在返回语句之前放置console.log(true)
时,它会输出true,但仍然不会返回true。
var findTarget = function (root, k) {
var stack = [];
var currentNode = root;
var arrayofVals = [];
var traverse = function (currentNode) {
console.log(currentNode);
console.log(stack);
arrayofVals.push(currentNode.val);
if (currentNode.right !== null) {
stack.push(currentNode.right);
}
if (currentNode.left !== null) {
currentNode = currentNode.left;
traverse(currentNode);
}
if (stack.length > 0 ) {
currentNode = stack.pop();
traverse(currentNode);
} else {
console.log(arrayofVals)
for (var i = 0; i <= arrayofVals.length; i++) {
for (var j = 0; j <= arrayofVals.length; j++) {
if (i === j) {
continue;
}
if(arrayofVals[i] + arrayofVals[j] === k) {
console.log(1 === 1);
return (1 === 1);
}
}
}
return false;
}
}
traverse(currentNode);
}
有人可以帮助我理解为什么我的代码返回undefined?我以前遇到过这个问题,但只有在返回布尔时才会出现。
感谢您的帮助!
答案 0 :(得分:3)
目前,findTarget
并未返回任何内容。您想要return traverse(currentNode);
。