題目描述:
請判斷乙個鍊錶是否為回文鍊錶。
示例 1:
輸入: 1->2
輸出: false
示例 2:
輸入: 1->2->2->1
輸出: true
解題思路:
1、使用快慢指標找到鍊錶的的中間節點,並反轉鍊錶的前半部分;
2、然後進行比較pre.val(中間向前找)和slow.val(中間向後找),若不相等,返回false;否則繼續比較,直到遍歷介紹。
**描述:
/**
* definition for singly-linked list.
* public class listnode
* }*/
class
solution
if(head.next==null)
listnode pre=null;
listnode slow=head;
listnode fast=head;
while
(fast!=null&&fast.next!=null)
//鍊錶的節點為奇數個時
if(fast!=null)
while
(pre!=null&&slow!=null)
slow=slow.next;
pre=pre.next;
}return
true;}
}
234 回文鍊錶
請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2輸出 false示例 2 輸入 1 2 2 1輸出 true首先建立兩個指標指向鍊錶,然後使其中乙個指標指向鍊錶中間,這裡可以使用另乙個指標快速移動,當另乙個指標移動速度是前一根指標的一倍時,就可以使slow指標到一半,而fast指標遍歷完了。使用...
234 回文鍊錶
請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?正確思路是1.先找到鍊錶的中點 通過快慢雙指標,快指標一次移動兩個單位,慢指標一次移動乙個單位,當快指標頂到頭的時...
234回文鍊錶
題目描述 請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 題解思路 首先反思一下,我這一題的第一想法是將整個鍊錶反轉,然後和原鍊錶同步遍歷,全部相同便是回文鍊錶,但是發現,你在反轉鍊錶的時候,原鍊錶被破壞了,所以第一次失敗。然後...