当前位置:   article > 正文

kotlin入门-尾递归优化(tailrec)_kotlin tailrec

kotlin tailrec

1.递归的一种特殊形式

2.调用自身后无其他操作

3.tailrec关键字提示编译器尾递归优化

  1. data class ListNode(val value: Int, var next: ListNode?=null)
  2. /**
  3. * 查找头结点,每个节点都有一个value 如果查到就返回,查不到就是NULL
  4. */
  5. tailrec fun findListNode(head: ListNode?, value: Int): ListNode? {
  6. head ?: return null
  7. if (head.value == value) return head
  8. return findListNode(head.next, value)
  9. }
  10. fun main(args: Array<String>) {
  11. val MAX_NODE_COUNT=10000
  12. val head = ListNode(0)
  13. var p = head
  14. for (i in 1..MAX_NODE_COUNT){
  15. p.next = ListNode(i)
  16. p=p.next!!
  17. }
  18. println(findListNode(head,MAX_NODE_COUNT-2)?.value)
  19. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/277501
推荐阅读
相关标签
  

闽ICP备14008679号