給定乙個鍊錶,判斷鍊錶中是否有環。
為了表示給定鍊錶中的環,我們使用整數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 僅僅是用於標識環的情況,並不會作為引數傳遞到函式中。說明 不允...