騰訊精選練習題19 環形鍊錶

2021-09-17 18:20:23 字數 1010 閱讀 2237

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

為了表示給定鍊錶中的環,我們使用整數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

解釋:鍊錶中沒有環。

思路:當hashset中新增不進node時,說明該節點已經儲存在了該集合中,說明是環形鍊錶。如果遍歷到了尾指標,則說明不是環形鍊錶

時間複雜度:o(n),對含有n個元素的鍊錶,我們訪問每個元素最多1次。新增乙個節點到雜湊表中只需要花費o(1)的時間。

空間複雜度:o(n),空間取決於新增到雜湊表中的元素數目,最多可以新增n個元素

/**

* definition for singly-linked list.

* class listnode

* }*/public class solution

return true;}}

騰訊精選練習題42 環形鍊錶 II

給定乙個鍊錶,返回鍊錶開始入環的第乙個節點。如果鍊錶無環,則返回null。為了表示給定鍊錶中的環,我們使用整數pos來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果pos是 1,則在該鍊錶中沒有環。說明 不允許修改給定的鍊錶。示例 1 輸入 head 3,2,0,4 pos 1輸出 tail ...

騰訊精選練習題9 反轉鍊錶

反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null高階 你可以迭代或遞迴地反轉鍊錶。你能否用兩種方法解決這道題?方法一 通過記錄前乙個節點的值並通過指標不斷移動的方式 時間複雜度為o n 假設n是列表的長度,時間複雜度是o n 空間複雜度為o 1 defin...

騰訊精選練習題34 旋轉鍊錶

給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 k 個位置,其中 k 是非負數。示例 1 輸入 1 2 3 4 5 null,k 2輸出 4 5 1 2 3 null解釋 向右旋轉 1 步 5 1 2 3 4 null 向右旋轉 2 步 4 5 1 2 3 null示例 2 輸入 0 1 2 nul...