衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

數據結構:判斷鏈表回文結構

嵌入式攻城獅 ? 來源:嵌入式攻城獅 ? 2023-12-01 13:26 ? 次閱讀

給定一個鏈表,判斷該鏈表是否為回文結構。回文是指該字符串正序逆序完全一致。如當輸入鏈表 {1,2,3,2,1} 時,斷定是回文結構,輸出True。

代碼實現

C語言代碼:

boolisPail(structListNode*head){
//writecodehere
if(head==NULL||head->next==NULL)
returntrue;
//第一步:定義快慢指針,并將其指向頭結點
structListNode*slow,*fast;
slow=head;
fast=head;
//第二步:快指針每次走兩步,慢指針走一步
while(fast!=NULL&&fast->next!=NULL){
fast=fast->next->next;
slow=slow->next;
}
//第三步:快指針指向慢指針后繼結點,慢指針斷鏈
fast=slow->next;
slow->next=NULL;

structListNode*p;
p=NULL;
//第四步:反轉后半部分的鏈表
while(fast!=NULL){
p=fast->next;
fast->next=slow;
slow=fast;
fast=p;
}
//第五步:將快指針指向原始鏈表頭部,將快慢指針結點的值進行對比
fast=head;
while(fast!=NULL&&slow!=NULL){
if(fast->val!=slow->val)
returnfalse;
fast=fast->next;
slow=slow->next;
}
returntrue;
}

圖解代碼

第一步:定義快慢指針,并將其指向頭結點

c788a09e-9004-11ee-939d-92fbcf53809c.png

第二步:快指針每次走兩步,慢指針走一步

c791b094-9004-11ee-939d-92fbcf53809c.png

第三步:快指針指向慢指針后繼結點,慢指針斷鏈

c79ed04e-9004-11ee-939d-92fbcf53809c.png

第四步:反轉后半部分的鏈表

c7b471a6-9004-11ee-939d-92fbcf53809c.png

第五步:將快指針指向原始鏈表頭部,將快慢指針結點的值進行對比

c7d285ec-9004-11ee-939d-92fbcf53809c.png

審核編輯:湯梓紅

分享、在看與點贊

只要你點,我們就是胖友

c85fa0bc-9004-11ee-939d-92fbcf53809c.gif

原文標題:數據結構:判斷鏈表回文結構

文章出處:【微信公眾號:嵌入式攻城獅】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137726
  • 代碼
    +關注

    關注

    30

    文章

    4828

    瀏覽量

    69055
  • 數據結構
    +關注

    關注

    3

    文章

    573

    瀏覽量

    40232
  • 鏈表
    +關注

    關注

    0

    文章

    80

    瀏覽量

    10599

原文標題:數據結構:判斷鏈表回文結構

文章出處:【微信號:嵌入式攻城獅,微信公眾號:嵌入式攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    數據結構中最簡單的鏈表

    數據結構作為嵌入式工程師必修課程之一,今天,我們就來講一講數據結構中最簡單的鏈表,包含鏈表的初始化、插入和遍歷操作。 鏈表在項目開發中使用的
    發表于 06-13 17:40 ?403次閱讀

    Linux Kernel數據結構:鏈表

    Linux Kernel數據結構鏈表原創 2016年10月20日 22:58:25標簽:LINUX/kernel/鏈表 數據結構數據結構
    發表于 09-25 16:41

    常見的數據結構

    的,那樣對于數據的使用簡直是個悲劇。針對此類數據數據結構提供了圖存儲結構,專門用于存儲這類數據。二、
    發表于 05-10 07:58

    數據結構鏈表的基本操作

    嵌入式學習基礎-數據結構鏈表的基本操作鏈表節點采用結構體的方式進行定義,下面是最基礎的定義只有一個數據data,*pNext用于指向下一個節
    發表于 12-22 08:05

    Linux內核中的數據結構的一點認識

    成員,那么到時候鏈表中沒有任何數據,這樣的鏈表有什么用呢?其實這就是內核鏈表設計的巧妙之處,因為在整個內核中需要使用鏈表來存放的
    發表于 04-20 16:42

    stm32的8位數據結構怎么判斷正負?

    stm32的8位數據結構怎么判斷正負,char變量不能為負,不想用int,我記得51單片機char可以判斷正負
    發表于 09-22 07:15

    算法與數據結構——雙向鏈表

    第三章為算法與數據結構,本文為3.3 雙向鏈表
    的頭像 發表于 09-19 17:56 ?7350次閱讀
    算法與<b class='flag-5'>數據結構</b>——雙向<b class='flag-5'>鏈表</b>

    數據結構是什么_數據結構有什么用

    數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在一種或多種特定關系的數據元素的集合。通常情況下,精心選擇的數據結構可以帶來更高
    發表于 11-17 14:45 ?1.6w次閱讀
    <b class='flag-5'>數據結構</b>是什么_<b class='flag-5'>數據結構</b>有什么用

    java數據結構學習

    數據結構是對計算機內存中的數據的一種安排,數據結構包括 數組, 鏈表, 棧, 二叉樹, 哈希表等,算法則對對這些結構中的
    發表于 11-29 09:46 ?812次閱讀

    什么是數據結構?為什么要學習數據結構數據結構的應用實例分析

    本文檔的主要內容詳細介紹的是什么是數據結構?為什么要學習數據結構數據結構的應用實例分析包括了:數據結構在串口通信當中的應用,數據結構在按鍵
    發表于 09-26 15:45 ?14次下載
    什么是<b class='flag-5'>數據結構</b>?為什么要學習<b class='flag-5'>數據結構</b>?<b class='flag-5'>數據結構</b>的應用實例分析

    區塊鏈的基本數據結構解析

    區塊鏈是一種分散式結構的系統,其中鏈表充當事務塊的基本數據結構。關于哪些事務塊應該附加到它的決策是由共識算法決定的。有時,選擇基本數據結構比選擇特定的共識算法對速度、吞吐量、可伸縮性和
    發表于 01-03 14:49 ?7554次閱讀

    你知道Linux內核數據結構中雙向鏈表的作用?

    Linux 內核提供一套雙向鏈表的實現,你可以在 include/linux/list.h 中找到。我們以雙向鏈表著手開始介紹 Linux 內核中的數據結構 ,因為這個是在 Linux 內核中使用最為廣泛的
    發表于 05-14 17:27 ?1894次閱讀

    什么是棧?數據結構中棧如何實現

    今天放松一下,我們來看看數據結構中的棧,這節的知識點可以說是數據結構中最容易上手的知識點了,其實比起鏈表,其實鏈表也有棧和隊列的模型,鏈表
    發表于 04-29 18:25 ?0次下載
    什么是棧?<b class='flag-5'>數據結構</b>中棧如何實現

    Linux內核的鏈表數據結構

    Linux內核實現了自己的鏈表數據結構,它的設計與傳統的方式不同,非常巧妙也很通用。
    的頭像 發表于 03-24 11:34 ?882次閱讀
    Linux內核的<b class='flag-5'>鏈表</b><b class='flag-5'>數據結構</b>

    Linux內核中使用的數據結構

    Linux內核代碼中廣泛使用了數據結構和算法,其中最常用的兩個是鏈表和紅黑樹。 鏈表 Linux內核代碼大量使用了鏈表這種數據結構
    的頭像 發表于 11-09 14:24 ?551次閱讀
    Linux內核中使用的<b class='flag-5'>數據結構</b>
    888百家乐官网的玩法技巧和规则| 百家乐娱乐平台代理佣金| 泰来百家乐导航| 运城百家乐官网的玩法技巧和规则| 赌百家乐官网庄闲能赢| 百家乐官网轮盘| 百家乐官网说明| 励骏会百家乐官网的玩法技巧和规则| 爱赢百家乐官网的玩法技巧和规则| 凯旋门百家乐技巧| 三星百家乐官网的玩法技巧和规则 | 施甸县| 百家乐官网庄闲和游戏机| 百家乐官网赌场破解| 将军百家乐官网的玩法技巧和规则 | 百家乐看澳门| 大发888充值 在线| 易胜博官网| 通州区| 神人百家乐官网赌场| 做生意摆放龙龟方向| 澳门百家乐技术| 威尼斯人娱乐注册网址| 大发888真钱赌场娱乐网规则| 在线龙虎斗| 澳门百家乐官网要注意啥| 加多宝百家乐官网的玩法技巧和规则 | 谈谈百家乐官网赢钱技巧| 棋牌百家乐官网程序破解| 百家乐官网牌| 百家乐现金网平台排行榜| 威尼斯人娱乐城活动| 明升国际网| 百家乐官网自动算牌软件| 百家乐官网桌布尼布材质| 百家乐网络视频游戏| 大发888bet亚洲| 溆浦县| 百家乐官网开户过的路纸| 机械手百家乐的玩法技巧和规则| 366娱乐城|