亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python判斷鏈表是否有環(huán)的實例代碼

 更新時間:2020年01月31日 10:00:44   作者:一起來學(xué)python  
在本篇文章里小編給大家整理的是關(guān)于python判斷鏈表是否有環(huán)的知識點及實例代碼,需要的朋友們參考下。

先看下實例代碼:

class Node:
  def __init__(self,value=None):
    self.value = value
    self.next = None

class LinkList:
  def __init__(self,head = None):
    self.head = head

  def get_head_node(self):
    """
    獲取頭部節(jié)點
    """
    return self.head
    
  def append(self,value) :
    """
    從尾部添加元素
    """  
    node = Node(value = value) 
    cursor = self.head 
    if self.head is None:
      self.head = node
    else:  
      while cursor.next is not None:
        cursor = cursor.next
    
 
      cursor.next = node
      if value==4:
        node.next = self.head
  
  def traverse_list(self):
    head = self.get_head_node()
    cursor = head
    while cursor is not None:
      print(cursor.value)
      cursor = cursor.next
    print("traverse_over") 
    
  def hasCycle(self, head):
    """
    :type head: ListNode
    :rtype: bool
    """
    slow=fast=head
    while slow and fast and fast.next:
      slow = slow.next
      fast = fast.next.next
      if slow is fast:
        return True
    return False
  

  
def main():
  l = LinkList()
  l.append(1)
  l.append(2)
  l.append(3)
  l.append(4)
  head = l.get_head_node()
  print(l.hasCycle(head))
  #l.traverse_list()


if __name__ == "__main__":
  main()

知識點思考

判斷一個單鏈表是否有環(huán),

可以用 set 存放每一個 節(jié)點, 這樣每次 訪問后把節(jié)點丟到這個集合里面.

其實 可以遍歷這個單鏈表, 訪問過后,

如果這個節(jié)點 不在 set 里面, 把這個節(jié)點放入到 set 集合里面.

如果這個節(jié)點在 set 里面 , 說明曾經(jīng)訪問過, 所以這個鏈表有重新 走到了這個節(jié)點, 因此一定有環(huán)

如果鏈表都走完了, 把所有的節(jié)點都放完了. 還是沒有重復(fù)的節(jié)點, 那說明沒有環(huán).

以上就是本次介紹的全部相關(guān)知識點內(nèi)容,感謝大家的學(xué)習(xí)和對腳本之家的支持。

相關(guān)文章

  • 聊聊python中not 與 is None的區(qū)別

    聊聊python中not 與 is None的區(qū)別

    這篇文章主要介紹了在python中not 與 is None的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python命名空間的本質(zhì)和加載順序

    Python命名空間的本質(zhì)和加載順序

    這篇文章主要介紹了Python命名空間的本質(zhì)和加載順序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • Python3.6日志Logging模塊簡單用法示例

    Python3.6日志Logging模塊簡單用法示例

    這篇文章主要介紹了Python3.6日志Logging模塊簡單用法,結(jié)合實例形式分析了Python3.6環(huán)境下日志Logging模塊設(shè)置格式、文件流輸出相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • Python的Pillow庫進(jìn)行圖像文件處理(圖文詳解)

    Python的Pillow庫進(jìn)行圖像文件處理(圖文詳解)

    本文詳解的講解了使用Pillow庫進(jìn)行圖片的簡單處理,使用PyCharm開發(fā)Python的詳細(xì)過程和各種第三方庫的安裝與使用。感興趣的可以了解一下
    2021-11-11
  • 利用Python實現(xiàn)kNN算法的代碼

    利用Python實現(xiàn)kNN算法的代碼

    這篇文章主要介紹了利用Python實現(xiàn)kNN算法的代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python 實現(xiàn)隨機(jī)數(shù)詳解及實例代碼

    Python 實現(xiàn)隨機(jī)數(shù)詳解及實例代碼

    這篇文章主要介紹了Python 實現(xiàn)隨機(jī)數(shù)詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Python實現(xiàn)文件按照日期命名的方法

    Python實現(xiàn)文件按照日期命名的方法

    這篇文章主要介紹了Python實現(xiàn)文件按照日期命名的方法,涉及Python針對文件的遍歷、讀寫及時間操作相關(guān)技巧,需要的朋友可以參考下
    2015-07-07
  • Python+Pygame實現(xiàn)接小彈珠游戲

    Python+Pygame實現(xiàn)接小彈珠游戲

    這篇文章主要為大家詳細(xì)介紹了Python如何利用Pygame實現(xiàn)接小彈珠游戲,即用擋板接住會反彈的小球,隨著次數(shù)的增多,速度變快,分?jǐn)?shù)增多,感興趣的可以了解一下
    2022-12-12
  • pycocotools介紹以及在windows10下的安裝過程

    pycocotools介紹以及在windows10下的安裝過程

    這篇文章主要介紹了pycocotools介紹以及在windows10下的安裝過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 對python cv2批量灰度圖片并保存的實例講解

    對python cv2批量灰度圖片并保存的實例講解

    今天小編就為大家分享一篇對python cv2批量灰度圖片并保存的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11

最新評論