Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sealed trait Tree
- case object Empty extends Tree
- case class Node(value: Int, left: Tree = Empty, right: Tree = Empty) extends Tree
- object Tree {
- def maxPath(tree: Tree): (Seq[Node], Int) = {
- tree match {
- case Empty => (Seq[Node](), 0)
- case node @ Node(value, left, right) =>
- val rl = maxPath(left)
- val rr = maxPath(right)
- val rm = if (rl._2 > rr._2) rl else rr
- (node +: rm._1, node.value + rm._2)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement