LeetCode Java 環形鍊錶

2021-09-23 20:45:55 字數 1299 閱讀 1418

給定乙個鍊錶,判斷鍊錶中是否有環。

為了表示給定鍊錶中的環,我們使用整數pos來表示鍊錶尾連線到鍊錶中的位置(索引從 0 開始)。 如果pos-1,則在該鍊錶中沒有環。

示例 1:

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

輸出:true

解釋:鍊錶中有乙個環,其尾部連線到第二個節點。

示例 2:

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

輸出:true

解釋:鍊錶中有乙個環,其尾部連線到第乙個節點。

示例 3:

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

輸出:false

解釋:鍊錶中沒有環。

高階:你能用 o(1)(即,常量)記憶體解決此問題嗎?

方法一:遍歷鍊錶,用乙個hashset記錄,出現過的節點,當遇到相同節點時表示出現了環,當都沒有出現時表示不存在環,此空間複雜度為o(n),我的**如下:

public boolean hascycle(listnode head)  else 

pnode = pnode.next;

} return false;

}

方法二:使用快慢指標,空間複雜度o(1),我的**如下:

public boolean hascycle(listnode head) 

listnode slow = head;

listnode fast = head.next;

if (fast == null)

// 快指標先動,判斷是否相等

while (fast != null && fast.next != null) else

} return false;

}

LeetCode Java 206 反轉鍊錶

206 反轉鍊錶 反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null高階 你可以迭代或遞迴地反轉鍊錶。你能否用兩種方法解決這道題?解法 1.迭代 頭插法 definition for singly linked list.public class listn...

鍊錶 環形鍊錶

環形鍊錶也叫迴圈鍊錶 可以是雙鏈表 也可以是單鏈表 操作原理和單鏈表差不多,只是最後乙個節點不在指向空 null 而是頭 head 這裡以單鏈表舉例 description 環形鍊錶 author lzq date 2018 11 3 20 46 version 1.0 public class a...

鍊錶 環形鍊錶

題目描述 給定乙個鍊錶,返回鍊錶開始入環的第乙個節點。如果鍊錶無環,則返回 null。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環。注意,pos 僅僅是用於標識環的情況,並不會作為引數傳遞到函式中。說明 不允...