我有以下对象结构:斯卡拉 - 递归函数不返回对象
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,但我卡在如何保持运行功能,如果没有找到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 2015-02-10 16:53:55
它可能为空,无或异常 – placplacboom 2015-02-10 16:55:14