我正在為這樣的字串研究基于 DFS 的搜索演算法
function alias_id_lookup(node, visitedNodeIds, target_id): string{
visitedNodeIds.push(node.id)
if (node.id == target_id){
return node.name as string
}
for (var childNode of node.children) {
if(!visitedNodeIds.includes(childNode.id)){
alias_id_lookup(childNode, visitedNodeIds, target_id)
}
}
}
通過列印陳述句進行的一些除錯,我知道找到了正確的節點,但是函式本身回傳未定義。
我認為我的遞回被破壞了,但是我無法準確地發現我搞砸了什么。
任何幫助都是appriciated,謝謝。
uj5u.com熱心網友回復:
您需要回傳找到該節點的函式呼叫的結果。
function alias_id_lookup(node, visitedNodeIds, target_id): string{
visitedNodeIds.push(node.id)
if (node.id == target_id) {
return node.name as string
}
for (var childNode of node.children) {
if (!visitedNodeIds.includes(childNode.id)) {
var res = alias_id_lookup(childNode, visitedNodeIds, target_id)
if (res !== undefined) return res;
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/470945.html
上一篇:未捕獲的RangeError:超出最大呼叫堆疊大小,使用亂數遞回?
下一篇:無法為谷歌地圖距離矩陣設定模式
