я иметь следующую структуру объекта:Scala - рекурсивная функция не возвращает объект
case class Node(id:Int,children:List[Node])
Пример:
NodeA
id: 1
children:[
NodeA1:
id: 2
children:
NodeA11
...
]
NodeB1:
id: 3
children:[]
NodeC1:
id: 17
children: [
NodeC11:
id:11
children:[
NodeC111:
id: 19
children: []
]
]
...
Я хотел бы создать рекурсивное зацикливание, чтобы получить узел, который имеет определенный Id, но я застрял в том, как продолжать работу fuction, если iD не найден, и объект имеет какой-либо объект в списке детей. Моя функция работает только для получения первого узла (например: Id = 1).
Вот что я пытаюсь сделать:
def getNode(id:Int, node:Node) : Node = {
var result:Node = null
if(node.id == id){
return node
} else if(node.children.size > 0){
for(children <- node.children){
result = getNode(id, children)
if(result.id == id){
return result
}
}
}
return result
}
Вы действительно хотите, чтобы вернуть 'null', когда ничего не нашли? – Bergi
это может быть null, none или исключение – placplacboom