【发布时间】:2018-12-03 00:24:05
【问题描述】:
我有一个存储节点中元素列表的树。 我需要编写一个函数来接受这样的树并返回在节点中有元素总和的树。
我认为这是一项简单的任务,但出现了一些错误: errors
这是 IntelliJ 显示的内容:
最后是我的代码:
sealed trait tree[+A]
case object Empty extends tree[Nothing]
case class Node[A](element:A,left:tree[A],right:tree[A]) extends tree[A]
val tr=Node(List(1,2,3),Node(List(3,4,5),Empty,Node(List(2,4,5),Empty,Empty)),Node(List(6,7,8),Empty,Empty))
def transformTree[Double](t:tree[List[Double]]):tree[Double]={
t match{
case Empty => Empty
case Node(l,left,right)=>Node[Double](l.foldLeft(0)((a:Double,b:Double)=>(a+b)),transformTree(left),transformTree(right))
}
}
transformTree(tr)
我不知道为什么它在那里期待字符串,所以如果可以的话,请向我解释一下:)
【问题讨论】:
标签: scala functional-programming tree