zoukankan      html  css  js  c++  java
  • 环形链表2

     双指针:

    # Definition for singly-linked list.
    # class ListNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.next = None

    class Solution:
        def detectCycle(self, head: ListNode) -> ListNode:
            if head is None or head.next is None:
                return 
            slow = fast = head
            while slow and fast and fast.next :
                slow = slow.next
                fast = fast.next.next
                if slow is fast:
                    break
            if fast is None or fast.next is None: #表明没有环
                return 
            tmp = head
            while tmp is not slow:
                tmp = tmp.next
                slow = slow.next
            return slow
     
    语言特性:
    # Definition for singly-linked list.
    # class ListNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.next = None

    class Solution:
        def detectCycle(self, head: ListNode) -> ListNode:
    #        if head is None and head.next is None:
     #           return head 
            hashmap = []
            while head:
                if head in hashmap:
                    return head
                hashmap.append(head)
                head = head.next
            return None
  • 相关阅读:
    简单的排序算法总结
    Android Stuido 方法参数 p0,p1
    年与酒
    Android-自定义View前传-View的三大流程-Layout
    Android自定义View前传-View的三大流程-Measure
    寻找积极
    括号配对问题
    Wan Android 项目总结
    涂鸦之作WanAndroid第三方APP
    CSS-定位(Position)
  • 原文地址:https://www.cnblogs.com/shamoguzhou/p/15306596.html
Copyright © 2011-2022 走看看