gpt4 book ai didi

javascript - 如何检查二叉树的右侧。在树中搜索项目

转载 作者:行者123 更新时间:2023-12-02 18:27:19 24 4
gpt4 key购买 nike

我有一个数组。

const arr1 = [3, [ 8, [ 5, 4, null], 11], [ 7, [ 1, 0, null], null]] 

我想编写一个函数,它应该检查给定值是否在树中。

这是我的函数。

  function valueInTree(tree, val) {
if(tree[0] === val || tree[1] === val || tree [2] === val){
return true;
}

if (Array.isArray(tree[1])){
return valueInTree(tree[1],val)
}
if (Array.isArray(tree[2])){
return valueInTree(tree[2],val);
}

return false;
}

console.log(valueInTree(arr1, 72));

下面是给定数组的视觉效果。

//                      3
// / \
// 8 7
// /\ /\
// 5 11 1 N
// /\ / \
// 4 72 0 N

所以,我的问题。如您所见,我的函数无法检查树的右侧。例如,它可以找到数字 3、8、5 和 4。但是当我尝试查找 7 或 11 时,它返回 false。

最佳答案

您可以直接测试,然后检查该值是否不是数组,然后返回 false,否则检查左侧或右侧部分。

function valueInTree(tree, val) {
if (tree === val) return true;
if (!Array.isArray(tree)) return false;
if (tree[0] === val) return true;
return valueInTree(tree[1], val) || valueInTree(tree[2], val);
}

const tree = [3, [8, [5, 4, null], 11], [7, [1, 0, null], null]]

console.log(valueInTree(tree, 72)); // false
console.log(valueInTree(tree, 1)); // true
console.log(valueInTree(tree, 0)); // true

关于javascript - 如何检查二叉树的右侧。在树中搜索项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69966728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com