函数返回undefined而不是boolean。 BST,LeetCode

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

我正在研究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?我以前遇到过这个问题,但只有在返回布尔时才会出现问题。

谢谢你的帮助!

javascript algorithm binary-search-tree
1个回答
3
投票

现在,findTarget没有返回任何东西。你想做return traverse(currentNode);

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