查询最小值时,我这样写的 var findMin = function(node){ if(node !== null){ if(node.left !== null){ findMin(node.left) }else{ return node.key } } } 为啥这样输出是undefind呢 求解
我试了下,如果按你这样写,要在调用的时候this.min = function(node) { return findMin(); }这里要写return!!
另一种,参考另外一个评论区朋友写的:
因为你if语句没有return啊,只是else语句return了。这个问题很容易被忽略
if(node.left !== null)这个条件执行完之后,没有给node重新赋值,你的node一直都是root的值。