[Leetcode] 234. Palindrome Linked List (回文鏈表) 題解紀錄

[Leetcode] 234. Palindrome Linked List (回文鏈表) 題解紀錄

leetcode 234 題解紀錄

前言:

最近開始上手刷leetcode,這幾天主要是在刷鏈表的演算法,想透過博客來記錄自己的成長歷程,也順便記錄一下自己解題時候的思路

題目要求:

這一題叫做回文鏈表,剛開始看題目的時候,會有點難理解題意,但其實這題的概念很簡單,就是把鏈表從中間拆成兩半,並且後半段的資料反過來時,資料會跟前半段的資料相同,這樣就是一個合格的回文鏈表。

解題思路:

這題的解法主要是利用雙指針先找到鏈表的中間點, 思路是先創建快慢指針,而快指針速度剛好是慢指針速度的兩倍,這樣子快指針跑到鏈表尾部的時候,慢指針剛好會停在鏈表的中間點,這樣我們就可以得到鏈表後半段的資料

但因為這時候後半段的資料是反的,所以我們需要把後半段的資料倒轉過來,以便跟前半段的資料比對,把後半段的資料倒轉過來以後,就可以跟前半段的資料照順序比對了