我被要求比较两棵树。如下所示:
case class Node(elem:String, child:List[Node])
为了比较树的每个元素,我有以下功能:
def compare(n1:Node, n2:Node): Boolean {
if(n1.elem == n2.elem){
return compare(n1.child, n2.child)
}
}
def compare(c1:List[Node], c2:List[Node]): Boolean {
while (c1.notEmpty) {
//filter, map etc call function above to compare the element recursively
}
}
基本上算法是针对 n1 中的每个元素,我们正在检查 n2 中的匹配。有人告诉我,这是非常必要的方式,而不是功能性的方式。什么是实现这种行为的实用方法。换句话说,我们如何在比较孩子列表时删除while循环?