我有以下對象結構:斯卡拉 - 遞歸函數不返回對象
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