前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Swift 环形链表- LeetCode

Swift 环形链表- LeetCode

作者头像
韦弦zhy
发布2018-12-19 17:14:44
7600
发布2018-12-19 17:14:44
举报

LeetCode

题目: 环形链表

给定一个链表,判断链表中是否有环。

进阶 你能否不使用额外空间解决此题?

方案:

可以转化为一个追击问题 前后双指针,slow走一步,fast走两步,如果有环存在,一定会相遇的。

代码:
代码语言:javascript
复制
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     public var val: Int
 *     public var next: ListNode?
 *     public init(_ val: Int) {
 *         self.val = val
 *         self.next = nil
 *     }
 * }
 */
class Solution {
  func hasCycle(_ head: ListNode?) -> Bool {
    if (head? == nil || head?.next == nil) {
      return false          
    }
    var slow = head?
    var fast = head?.next
    while(slow != fast) {
      if (fast ==  nil || fast.next == nil) {
         return false        
      }
      slow = slow.next
      fast = fast.next.next
    }
    return true
  }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.11.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目: 环形链表
    • 方案:
      • 代码:
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档