Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2014
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 0.73 KB | None | 0 0
  1. package example
  2.  
  3. case class Tree(val value: Int, val childs: List[Tree] = null)
  4.  
  5. object DeepestTree extends App {
  6.  
  7.   def findDeepestTree(tree: Tree): Tree = {
  8.     def loop(subtree: Tree, acc: (Int, Tree)): (Int, Tree) = {
  9.       subtree.childs match {
  10.         case x: List[Tree] =>
  11.           x map { loop(_, (acc._1 + 1, subtree)) } maxBy { _._1 }
  12.         case _ => acc
  13.       }
  14.     }
  15.  
  16.     assert(tree.childs != null)
  17.     loop(tree, (0, tree))._2
  18.   }
  19.  
  20.   val tree = Tree(10,
  21.     List(Tree(5,
  22.       List(Tree(6,
  23.         List(Tree(9))),
  24.         Tree(1))),
  25.       Tree(4)))
  26.  
  27.   val t1 =
  28.    Tree(10,
  29.       List(Tree(5),
  30.            Tree(6, List(Tree(7))
  31.            )
  32.       )
  33.    )
  34.  
  35.    println(findDeepestTree(tree).value)
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement