Javascript:二进制搜索树,未定义

Javascript:二进制搜索树,未定义,javascript,data-structures,binary-search-tree,Javascript,Data Structures,Binary Search Tree,我试图递归调用一个函数,以获取二进制搜索子树中的左和根节点 function inOrder(bst) { var inOrderArray = [] var nodeStack = [] console.log(findLeftAndRootNode(bst.root)) } function findLeftAndRootNode(node) { if(node.left.left === undefined) return ([node.left, n

我试图递归调用一个函数,以获取二进制搜索子树中的左和根节点

function inOrder(bst) {
  var inOrderArray = []
  var nodeStack = []
  
  console.log(findLeftAndRootNode(bst.root))
  
}

function findLeftAndRootNode(node) {
  if(node.left.left === undefined)
    return ([node.left, node])
  else 
    findLeftAndRootNode(node.left)
}

这里,console.log(findLeftAndRootNode(bst.root))给出了未定义的代码。为什么它给了我未定义的信息?

因为不是每个路径都返回一些东西。你所说的路径是什么意思?当我在返回之前输入console.log([node.left,node])时,我会得到所需的值,但是console.log(findLeftAndRootNode(bst.root))是未定义的。您只返回
if
分支/路径中的某个内容,而不返回
else
分支/路径中的某个内容