單鏈表判斷回文串(快慢指針)

最近從極客時(shí)間上買(mǎi)了一份數(shù)據(jù)結(jié)構(gòu)與算法的課评汰,正在學(xué)習(xí)當(dāng)中纷捞。然后目前學(xué)到了鏈表這塊,有個(gè)課后思考是 :用單鏈表實(shí)現(xiàn)回文串键俱。
評(píng)論底下 人才輩出兰绣,我看了一個(gè)網(wǎng)友的評(píng)論,使用快慢指針的方法來(lái)進(jìn)行實(shí)現(xiàn)算法编振。
https://github.com/andavid/leetcode-java/blob/master/note/234/README.md
我是從這個(gè)地方看到的代碼缀辩,然后自己仔細(xì)分析之后與大家共享。
話不多說(shuō)貼代碼:
根據(jù)快慢指針踪央, 判斷以下 fast 是否為null臀玄,如果是奇數(shù),fast不為null畅蹂,slow 再遷移一位不用判斷最中間的數(shù)健无,prev和slow的值比較即可。 例: a->b->c->b->a->null , 到比較之前隊(duì)列變成null<-a<-b c->b->a->null 此時(shí)slow 是 c->b->a->null的b節(jié)點(diǎn)液斜,prev 為 null<-a<-b的b節(jié)點(diǎn)累贤,然后挨個(gè)對(duì)比即可叠穆。
如果是偶數(shù),fast為null臼膏,slow不動(dòng)硼被,prev和slow的值比較即可。
例: a->b->c->c->b->a->null 到比較之前隊(duì)列變成null<-a<-b<-c c->b->a->null 此時(shí)slow 是 c->b->a->null的c節(jié)點(diǎn)渗磅,prev 為 null<-a<-b<-c的c節(jié)點(diǎn)嚷硫,然后挨個(gè)對(duì)比即可。

class Solution {
public boolean isPalindrome(ListNode head) {
if (head == null || head.next == null) {
return true;
}

ListNode prev = null;
ListNode slow = head;
ListNode fast = head;

while (fast != null && fast.next != null) {
  fast = fast.next.next;
  ListNode next = slow.next;
  slow.next = prev;
  prev = slow;
  slow = next;
}

if (fast != null) {
  slow = slow.next;
}

while (slow != null) {
  if (slow.val != prev.val) {
    return false;
  }
  slow = slow.next;
  prev = prev.next;
}

return true;

}
}

加上我自己的分析應(yīng)該我覺(jué)得屏幕前的你可以看得懂了始鱼,看不懂也沒(méi)關(guān)系也可以自己拿筆或者自己實(shí)現(xiàn)一遍仔掸,就可以加深印象了。 共勉医清。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末起暮,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子会烙,更是在濱河造成了極大的恐慌鞋怀,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件持搜,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡焙矛,警方通過(guò)查閱死者的電腦和手機(jī)葫盼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)村斟,“玉大人贫导,你說(shuō)我怎么就攤上這事◇№铮” “怎么了孩灯?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)逾滥。 經(jīng)常有香客問(wèn)我峰档,道長(zhǎng),這世上最難降的妖魔是什么寨昙? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任讥巡,我火速辦了婚禮,結(jié)果婚禮上舔哪,老公的妹妹穿的比我還像新娘欢顷。我一直安慰自己,他們只是感情好捉蚤,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布抬驴。 她就那樣靜靜地躺著炼七,像睡著了一般。 火紅的嫁衣襯著肌膚如雪布持。 梳的紋絲不亂的頭發(fā)上豌拙,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音鳖链,去河邊找鬼姆蘸。 笑死,一個(gè)胖子當(dāng)著我的面吹牛芙委,可吹牛的內(nèi)容都是我干的逞敷。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼灌侣,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼推捐!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起侧啼,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤牛柒,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后痊乾,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體皮壁,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年哪审,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛾魄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡湿滓,死狀恐怖滴须,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情叽奥,我是刑警寧澤扔水,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站朝氓,受9級(jí)特大地震影響魔市,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜赵哲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一嘹狞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧誓竿,春花似錦磅网、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)簸喂。三九已至,卻和暖如春燎潮,著一層夾襖步出監(jiān)牢的瞬間喻鳄,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工确封, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留除呵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓爪喘,卻偏偏與公主長(zhǎng)得像颜曾,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子秉剑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • //leetcode中還有花樣鏈表題泛豪,這里幾個(gè)例子,冰山一角 求單鏈表中結(jié)點(diǎn)的個(gè)數(shù)----時(shí)間復(fù)雜度O(n)這是最...
    暗黑破壞球嘿哈閱讀 1,514評(píng)論 0 6
  • 本文是我自己在秋招復(fù)習(xí)時(shí)的讀書(shū)筆記侦鹏,整理的知識(shí)點(diǎn)诡曙,也是為了防止忘記,尊重勞動(dòng)成果略水,轉(zhuǎn)載注明出處哦价卤!如果你也喜歡,那...
    波波波先森閱讀 2,770評(píng)論 0 10
  • 弘David閱讀 148評(píng)論 0 0
  • 六月初渊涝,因?yàn)榈艿芨呖架瘢?qǐng)了幾天的假回去照顧他。在去之前驶赏,準(zhǔn)備了一些英語(yǔ)四級(jí)的卷子,打算回去在他看書(shū)的時(shí)候就做做題目...
    Eternity_667d閱讀 215評(píng)論 0 0
  • 明天就要分別 今天已是最后一次見(jiàn)面 往昔就像昨日 一切卻早已不同 昨天已經(jīng)過(guò)去 明天還要再來(lái) 從來(lái)沒(méi)有想過(guò) 我們要...
    云輕墨淡閱讀 267評(píng)論 1 2