leetcode每日一題鍊錶有環無環鏈表長度求解

2021-10-24 18:32:18 字數 992 閱讀 1281

1.鍊錶有無環

採用快慢指標求解,指標slow和fast從煉表頭開始走,slow每次往後走一步,fast每次往後走兩步,若煉表有環則倆指標必定在環內相遇 

2.有環鏈表長度

如圖所示,假設slow和fast在pos處第一次相遇,join為環的入口,假設從表頭head到join有l個節點,join沿逆時針到pos有x個節點,環中有r個節點,顯然fast走過的節點數是slow的兩倍,那麼有

其中讓fast和slow從pos開始繼續沿著逆時針走,同時用另外個指標p沿著head一次走一步,到第二次相遇時fast比slow多走了一圈,而fast的速度剛好是slow的兩倍,則slow剛好走了一圈,記下此時slow走過的節點數可以得到環內包含的節點數

LeetCode每日一題 回文鍊錶

題目 請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 高階 思路 判斷是否是回文,可以將鍊錶儲存在乙個陣列中,然後用兩個指標乙個指向頭,乙個指向尾,同時向中間掃瞄。演算法 複製鍊錶值到陣列列表中。使用雙指標法判斷是否為回文。cl...

LeetCode每日一題 61 旋轉鍊錶

題目描述 給乙個鍊錶的頭結點head,旋轉鍊錶,將鍊錶每個節點向右移動k個位置 示例1 輸入 1 2 3 4 5 null,k 2 輸出 4 5 1 2 3 null 示例2 輸入 1 2 3 null,k 5 輸出 2 3 1 null 解題思路 由於是右移,給的又是頭節點,所以得找出旋轉後的新鍊...

每日一題 反轉鍊錶

這道是牛客的題,給了鍊錶然後返回鍊錶的新表頭。拿到這道題首先肯定想到的是暴力求解,從表頭開始遍歷到尾,用尾元素作為新錶的表頭,然後遍歷尾元素的上乙個元素,鏈到新錶的最後然後不斷重複直到鍊錶的表頭鏈到新錶的尾巴 這樣有乙個很大的問題就是複雜度太高了,時間複雜度是o n n 這個時候我想到了肯定有簡單的...