国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

leetcode 234.判斷鏈表是否為回文

這篇具有很好參考價(jià)值的文章主要介紹了leetcode 234.判斷鏈表是否為回文。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


leetcode 234.判斷鏈表是否為回文

題目描述

給定一個(gè)單鏈表,判斷它是否是回文。

示例

輸入: 1->2

輸出: false

輸入: 1->2->2->1

輸出: true

解法思路

判斷鏈表是否為回文,可以通過翻轉(zhuǎn)鏈表后半部分并比較兩半部分是否相同來實(shí)現(xiàn)。具體步驟如下:

  1. 使用快慢指針找到鏈表的中間節(jié)點(diǎn)。
  2. 翻轉(zhuǎn)鏈表的后半部分。
  3. 比較前半部分和翻轉(zhuǎn)后的后半部分是否相同。

代碼實(shí)現(xiàn)

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

        ListNode slow = head;
        ListNode fast = head;

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

        // 將中間節(jié)點(diǎn)歸屬到前半部分
        if (fast != null) {
            slow = slow.next;
        }

        slow = reverseList(slow);
        fast = head;

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

        return true;
    }

    private ListNode reverseList(ListNode head) {
        ListNode prev = null;
        ListNode curr = head;

        while (curr != null) {
            ListNode nextTemp = curr.next;
            curr.next = prev;
            prev = curr;
            curr = nextTemp;
        }

        return prev;
    }
}

復(fù)雜度分析

  • 時(shí)間復(fù)雜度:O(n),其中 n 為鏈表的長(zhǎng)度。需要遍歷鏈表的一半來翻轉(zhuǎn)后半部分,然后再進(jìn)行比較。
  • 空間復(fù)雜度:O(1),只需要常數(shù)級(jí)別的額外空間。

希望這篇博客對(duì)你有幫助。如有任何疑問或建議,歡迎留言交流。文章來源地址http://www.zghlxwxcb.cn/news/detail-804403.html

到了這里,關(guān)于leetcode 234.判斷鏈表是否為回文的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • LeetCode 熱題 100(四):48. 旋轉(zhuǎn)圖像、240. 搜索二維矩陣 II、234. 回文鏈表

    LeetCode 熱題 100(四):48. 旋轉(zhuǎn)圖像、240. 搜索二維矩陣 II、234. 回文鏈表

    題目要求:就是一個(gè)順時(shí)針的旋轉(zhuǎn)過程。 ?思路:觀察矩陣,得出翻轉(zhuǎn)前第i行的第J個(gè)元素? 等于? 翻轉(zhuǎn)后倒數(shù)第i列的第J個(gè)元素,舉例說明,第1行第2個(gè)元素為“2”,翻轉(zhuǎn)后到了 倒數(shù)第1列的第2個(gè)元素。說白了只需要針對(duì)翻轉(zhuǎn)前的第i行和翻轉(zhuǎn)后的倒數(shù)第i列 代碼: 題目要求

    2024年02月11日
    瀏覽(25)
  • 【面試必刷TOP101】判斷一個(gè)鏈表是否為回文結(jié)構(gòu) & 鏈表的奇偶重排

    【面試必刷TOP101】判斷一個(gè)鏈表是否為回文結(jié)構(gòu) & 鏈表的奇偶重排

    目錄 題目:判斷一個(gè)鏈表是否為回文結(jié)構(gòu)_??皖}霸_??途W(wǎng) (nowcoder.com) 題目的接口: 解題思路: 代碼: 過啦?。?! 題目:鏈表的奇偶重排_(tái)??皖}霸_??途W(wǎng) (nowcoder.com) 題目的接口: 解題思路: 代碼: 過啦!??! 寫在最后: 這道題我的思路還是比較清晰的,主要是三步走

    2024年02月07日
    瀏覽(26)
  • C/C++ BM13 判斷一個(gè)鏈表是否為回文結(jié)構(gòu)

    回文結(jié)構(gòu)這種之前在做C++入門題的時(shí)候,判斷回文數(shù)的時(shí)候遇到過。之前的做法是采用取數(shù),求余等方法來把每一個(gè)數(shù)取出來再組合進(jìn)行判斷。 在鏈表中,鏈表倒置后再相互判斷值,比原本取數(shù)的方法好像更方便。官方給的理解還是用了雙指針法,我這里也會(huì)貼。 C/C++ BM1反

    2024年02月21日
    瀏覽(24)
  • C++判斷一個(gè)數(shù)是否為回文數(shù)的算法

    C++判斷一個(gè)數(shù)是否為回文數(shù)的算法 回文數(shù)是指正序(從左向右)和倒序(從右向左)讀都相同的整數(shù)。在C++中,我們可以使用算法來判斷一個(gè)數(shù)是否為回文數(shù)。下面是一個(gè)詳細(xì)的解釋和相應(yīng)的源代碼。 算法思路: 將給定的整數(shù)轉(zhuǎn)換成字符串。 使用雙指針法來檢查字符串的左

    2024年02月06日
    瀏覽(19)
  • Java 算法篇-鏈表的經(jīng)典算法:判斷回文鏈表、判斷環(huán)鏈表與尋找環(huán)入口節(jié)點(diǎn)(“龜兔賽跑“算法實(shí)現(xiàn))

    Java 算法篇-鏈表的經(jīng)典算法:判斷回文鏈表、判斷環(huán)鏈表與尋找環(huán)入口節(jié)點(diǎn)(“龜兔賽跑“算法實(shí)現(xiàn))

    ??博客主頁(yè):?【 小扳_-CSDN博客】 ?感謝大家點(diǎn)贊??收藏?評(píng)論? ? ? ? 文章目錄 ? ? ? ? 1.0 鏈表的創(chuàng)建 ????????2.0 判斷回文鏈表說明 ? ? ? ? 2.1 快慢指針方法 ????????2.2 使用遞歸方式實(shí)現(xiàn)反轉(zhuǎn)鏈表方法 ? ? ? ? 2.3 實(shí)現(xiàn)判斷回文鏈表 - 使用快慢指針與反轉(zhuǎn)鏈表

    2024年02月05日
    瀏覽(27)
  • 復(fù)習(xí)Day05:鏈表part01:203.移除鏈表元素、707.設(shè)計(jì)鏈表、206.反轉(zhuǎn)鏈表、234. 回文鏈表

    之前的blog鏈接:https://blog.csdn.net/weixin_43303286/article/details/131700482?spm=1001.2014.3001.5501 我用的方法是在leetcode再過一遍例題,明顯會(huì)的就復(fù)制粘貼,之前沒寫出來就重寫,然后從拓展題目中找題目來寫。輔以Labuladong的文章看。然后刷題不用CLion了,使用leetcode自帶模擬面試環(huán)境。

    2024年02月07日
    瀏覽(21)
  • LeetCode算法小抄 -- 鏈表(快慢指針、雙指針、回文鏈表)

    ?申明: 未經(jīng)許可,禁止以任何形式轉(zhuǎn)載,若要引用,請(qǐng)標(biāo)注鏈接地址。 全文共計(jì)10077字,閱讀大概需要10分鐘 ??更多學(xué)習(xí)內(nèi)容, 歡迎??關(guān)注??文末我的個(gè)人微信公眾號(hào):不懂開發(fā)的程序猿 個(gè)人網(wǎng)站:https://jerry-jy.co/ Collection 子接口之 Queue (LeetCode上經(jīng)常用,手撕算法題!

    2023年04月08日
    瀏覽(22)
  • 鏈表專題1—24. 兩兩交換鏈表中的節(jié)點(diǎn) 234.回文鏈表 143.重排鏈表 141.環(huán)形鏈表 142.環(huán)形鏈表II 160.鏈表相交 C++實(shí)現(xiàn)

    鏈表專題1—24. 兩兩交換鏈表中的節(jié)點(diǎn) 234.回文鏈表 143.重排鏈表 141.環(huán)形鏈表 142.環(huán)形鏈表II 160.鏈表相交 C++實(shí)現(xiàn)

    迭代法,時(shí)間復(fù)雜度: O ( n ) O(n) O ( n ) , 空間復(fù)雜度: O ( 1 ) O(1) O ( 1 ) 時(shí)間復(fù)雜度、空間復(fù)雜度: O ( n ) O(n) O ( n ) 止位置時(shí),慢指針就在鏈表中間位置。 同時(shí)用pre記錄慢指針指向節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn),用來分割鏈表,將鏈表分為前后均等兩部分,如果鏈表長(zhǎng)度是奇數(shù),那么

    2024年02月12日
    瀏覽(18)
  • 【LeetCode力扣】234 快慢指針 | 反轉(zhuǎn)鏈表 | 還原鏈表

    【LeetCode力扣】234 快慢指針 | 反轉(zhuǎn)鏈表 | 還原鏈表

    ? 目錄 1、題目介紹 2、解題思路 2.1、暴力破解法 2.2、快慢指針反轉(zhuǎn)鏈表 ? 原題鏈接:? 234. 回文鏈表 - 力扣(LeetCode) 示例 1: 輸入: head = [1,2,2,1] 輸出: true? 示例 2: 輸入: head = [1,2] 輸出: false? 提示:? 鏈表中節(jié)點(diǎn)數(shù)目在范圍[1, 10^5]?內(nèi) 0 = Node.val = 9 進(jìn)階: 你能否用

    2024年02月08日
    瀏覽(19)
  • 鏈表的回文判斷

    鏈表的回文判斷

    思路: 找中間節(jié)點(diǎn)–逆置-比較 代碼:

    2024年02月07日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包