Day 40 判斷鏈表中是否有環(huán)

給定一個鏈表,判斷鏈表中是否有環(huán)隅肥。

為了表示給定鏈表中的環(huán)竿奏,我們使用整數(shù) pos 來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)。 如果 pos 是 -1武福,則在該鏈表中沒有環(huán)议双。

示例 1:

輸入:head = [3,2,0,-4], pos = 1

輸出:true

解釋:鏈表中有一個環(huán)痘番,其尾部連接到第二個節(jié)點(diǎn)捉片。

示例 2:

輸入:head = [1,2], pos = 0

輸出:true

解釋:鏈表中有一個環(huán),其尾部連接到第一個節(jié)點(diǎn)汞舱。

示例 3:

輸入:head = [1], pos = -1

輸出:false

解釋:鏈表中沒有環(huán)伍纫。

來源:力扣(LeetCode)

鏈接:https://leetcode-cn.com/problems/linked-list-cycle

給定一個鏈表,判斷鏈表中是否有環(huán)昂芜。

為了表示給定鏈表中的環(huán)莹规,我們使用整數(shù) pos 來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)。 如果 pos 是 -1泌神,則在該鏈表中沒有環(huán)良漱。

示例 1:

輸入:head = [3,2,0,-4], pos = 1

輸出:true

解釋:鏈表中有一個環(huán),其尾部連接到第二個節(jié)點(diǎn)欢际。

示例 2:

輸入:head = [1,2], pos = 0

輸出:true

解釋:鏈表中有一個環(huán)母市,其尾部連接到第一個節(jié)點(diǎn)。

示例 3:

輸入:head = [1], pos = -1

輸出:false

解釋:鏈表中沒有環(huán)损趋。

來源:力扣(LeetCode)

鏈接:https://leetcode-cn.com/problems/linked-list-cycle

class Solution():
def hasCycle_hash(self, head): # hash
s = set()
tmp = head
while tmp:
if tmp in s:
return True
else:
s.add(tmp)
tmp = tmp.next
return False

def hasCycle_fast_slow_point(self, head): #快慢指針
    #沒有考慮鏈表長度小于2的情況
    slow = fast = head
    while slow != None and fast != None:
        slow = slow.next
        fast = fast.next.next
        if slow == fast:
            return True
        # else:
        # if fast != None:
            # fast = fast.next
    return False

class Node():
def init(self, val):
self.val = val
self.next = None

class SingleLinkList():
def init(self):
self.head = None

def is_empty(self):
  if self.head == None:
      return True

def length(self):
  cur = self.head
  count = 0
  while cur != None:
      cur = cur.next
      count +=1
  return count

def travel(self):
  cur = self.head
  while cur != None:
      print(cur.val, end=' ')
      cur = cur.next
  print('\n')

def append(self, item):
  node = Node(item)
  cur = self.head
  if self.is_empty():
      self.head = node
  else:
      while cur.next != None:
          cur = cur.next
      cur.next = node

def reverseList(self):
  # if self.head == None or self.head.next == None:
      # return self.head
  pre = None
  cur = self.head
  while cur != None:
      next = cur.next
      cur.next = pre
      pre = cur
      cur = next
  self.head = pre

def addCycle(self, pos):
    count = 0
    cur = self.head
    prev = self.head
    end = self.head
    while end.next != None:
        if count != pos:
            cur = cur.next
            count += 1
        end = end.next
    end.next = cur

if name == 'main':
sll = SingleLinkList()
for i in range(1,11):
sll.append(i)
sll.travel()
sll.reverseList()
sll.travel()
sll.addCycle(3)

sll.travel() 不能運(yùn)行患久,會死循環(huán)的

s = Solution()
print(f'Has cycle?(Hash): {s.hasCycle_hash(sll.head)}')
print(f'Has cycle?(Slow Fast point): {s.hasCycle_fast_slow_point(sll.head)}')

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市浑槽,隨后出現(xiàn)的幾起案子蒋失,更是在濱河造成了極大的恐慌,老刑警劉巖桐玻,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件篙挽,死亡現(xiàn)場離奇詭異,居然都是意外死亡镊靴,警方通過查閱死者的電腦和手機(jī)铣卡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門观腊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人算行,你說我怎么就攤上這事梧油。” “怎么了州邢?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵儡陨,是天一觀的道長。 經(jīng)常有香客問我量淌,道長骗村,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任呀枢,我火速辦了婚禮胚股,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘裙秋。我一直安慰自己琅拌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布摘刑。 她就那樣靜靜地躺著进宝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪枷恕。 梳的紋絲不亂的頭發(fā)上党晋,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機(jī)與錄音徐块,去河邊找鬼未玻。 笑死,一個胖子當(dāng)著我的面吹牛胡控,可吹牛的內(nèi)容都是我干的扳剿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼铜犬,長吁一口氣:“原來是場噩夢啊……” “哼舞终!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起癣猾,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤敛劝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后纷宇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體夸盟,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年像捶,在試婚紗的時候發(fā)現(xiàn)自己被綠了上陕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桩砰。...
    茶點(diǎn)故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖释簿,靈堂內(nèi)的尸體忽然破棺而出亚隅,到底是詐尸還是另有隱情,我是刑警寧澤庶溶,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布煮纵,位于F島的核電站,受9級特大地震影響偏螺,放射性物質(zhì)發(fā)生泄漏行疏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一套像、第九天 我趴在偏房一處隱蔽的房頂上張望酿联。 院中可真熱鬧,春花似錦夺巩、人聲如沸贞让。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽震桶。三九已至休傍,卻和暖如春征绎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背磨取。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工人柿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人忙厌。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓凫岖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親逢净。 傳聞我的和親對象是個殘疾皇子哥放,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評論 2 354