問:如何反轉鍊錶? 答案:反轉鍊錶涉及更改其指標的方向,以便列表從最後一個元素開始並在第一個元素結束。 範例: 輸入:1-> 2-> 3-> 4->無效的 輸出:4-> 3-> 2-> 1->空 問:如何對排序數組執行二分查找? 答案:二分查找將陣列重複分成兩半,檢查中間元素是否與目標相符。 範例: 輸入:陣列 [1, 3, 5, 7, 9],目標 = 7 輸出:3(索引為 7) 解決方法:檢查中間元素;如果是目標,則傳回索引。如果目標較小,則搜尋左半部;如果更大,則搜尋右半部。 問:如何找到字串中的第一個唯一字元? 答案:要找到第一個唯一字符,請計算每個字符的出現次數並找出第一個僅出現一次的字符。 範例: 輸入:“瑞士” 輸出:“w” 解決方案:使用雜湊圖儲存每個字元的出現頻率,然後迭代字串找到第一個計數為 1 的字元。 問:如何偵測鍊錶中的循環? 答案:要偵測鍊錶中的循環,請使用兩個指標(慢指標和快指標)。如果有循環的話,快指針最終會遇到慢指針。 範例: 輸入:1-> 2-> 3-> 4-> 2(循環) 輸出:True(循環存在) 方法:使用 Floyd 的循環偵測演算法。快指針移動兩步,慢指針移動一步。如果他們相遇,就會有一個循環。