Scala反向列表实现

时间:2016-05-01 08:56:36

标签: algorithm scala reverse

想澄清一下,为什么scala以这种方式实施反向列表

 override def reverse: List[A] = {
    var result: List[A] = Nil
    var these = this
    while (!these.isEmpty) {
      result = these.head :: result
      these = these.tail
    }
    result
  }

为什么不能这样实现?

  @tailrec
  private def reverseRec[A](init: List[A], res: List[A]): List[A] = {
    if(init.isEmpty) return res
    reverseRec[A](init.tail, init.head :: res)
  }

使用不可变状态进行反向的任何其他实现?

0 个答案:

没有答案