【问题标题】:Function returning undefined instead of boolean. BST, LeetCode函数返回未定义而不是布尔值。 BST、力科
【发布时间】:2018-01-02 11:44:44
【问题描述】:

我正在解决 leetcode 中的一个问题。代码是用javascript编写的。

https://leetcode.com/problems/two-sum-iv-input-is-a-bst/description/

每当我测试它返回未定义的代码时,但是当我将 console.log(true) 放在我的 return 语句之前,它会打印 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);   
}

谁能帮我理解为什么我的代码返回未定义?我以前也遇到过这个问题,但只是在返回 bool 时。

感谢您的帮助!

【问题讨论】:

    标签: javascript algorithm binary-search-tree


    【解决方案1】:

    目前,findTarget 没有返回任何内容。你会想做return traverse(currentNode);

    【讨论】:

    • 有道理。谢谢!
    猜你喜欢
    • 2014-03-14
    • 2019-07-23
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 2017-04-22
    • 2020-02-13
    • 2021-09-11
    • 1970-01-01
    相关资源
    最近更新 更多