91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

數(shù)據(jù)結(jié)構(gòu):判斷鏈表回文結(jié)構(gòu)

嵌入式攻城獅 ? 來源:嵌入式攻城獅 ? 2023-12-01 13:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

給定一個(gè)鏈表,判斷該鏈表是否為回文結(jié)構(gòu)?;匚氖侵冈撟址蚰嫘蛲耆恢?。如當(dāng)輸入鏈表 {1,2,3,2,1} 時(shí),斷定是回文結(jié)構(gòu),輸出True。

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

C語言代碼:

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

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

圖解代碼

第一步:定義快慢指針,并將其指向頭結(jié)點(diǎn)

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

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

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

第三步:快指針指向慢指針后繼結(jié)點(diǎn),慢指針斷鏈

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

第四步:反轉(zhuǎn)后半部分的鏈表

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

第五步:將快指針指向原始鏈表頭部,將快慢指針結(jié)點(diǎn)的值進(jìn)行對(duì)比

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

審核編輯:湯梓紅

分享、在看與點(diǎn)贊

只要你點(diǎn),我們就是胖友

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

原文標(biāo)題:數(shù)據(jù)結(jié)構(gòu):判斷鏈表回文結(jié)構(gòu)

文章出處:【微信公眾號(hào):嵌入式攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    183

    文章

    7644

    瀏覽量

    145596
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4968

    瀏覽量

    73965
  • 數(shù)據(jù)結(jié)構(gòu)

    關(guān)注

    3

    文章

    573

    瀏覽量

    41589
  • 鏈表
    +關(guān)注

    關(guān)注

    0

    文章

    80

    瀏覽量

    11061

原文標(biāo)題:數(shù)據(jù)結(jié)構(gòu):判斷鏈表回文結(jié)構(gòu)

文章出處:【微信號(hào):嵌入式攻城獅,微信公眾號(hào):嵌入式攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    數(shù)據(jù)結(jié)構(gòu)中最簡(jiǎn)單的鏈表

    數(shù)據(jù)結(jié)構(gòu)作為嵌入式工程師必修課程之一,今天,我們就來講一講數(shù)據(jù)結(jié)構(gòu)中最簡(jiǎn)單的鏈表,包含鏈表的初始化、插入和遍歷操作。 鏈表在項(xiàng)目開發(fā)中使用的
    發(fā)表于 06-13 17:40 ?709次閱讀

    Linux Kernel數(shù)據(jù)結(jié)構(gòu):鏈表

    Linux Kernel數(shù)據(jù)結(jié)構(gòu)鏈表原創(chuàng) 2016年10月20日 22:58:25標(biāo)簽:LINUX/kernel/鏈表 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)
    發(fā)表于 09-25 16:41

    常見的數(shù)據(jù)結(jié)構(gòu)

    的,那樣對(duì)于數(shù)據(jù)的使用簡(jiǎn)直是個(gè)悲劇。針對(duì)此類數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)提供了圖存儲(chǔ)結(jié)構(gòu),專門用于存儲(chǔ)這類數(shù)據(jù)。二、數(shù)
    發(fā)表于 05-10 07:58

    數(shù)據(jù)結(jié)構(gòu)鏈表的基本操作

    嵌入式學(xué)習(xí)基礎(chǔ)-數(shù)據(jù)結(jié)構(gòu)鏈表的基本操作鏈表節(jié)點(diǎn)采用結(jié)構(gòu)體的方式進(jìn)行定義,下面是最基礎(chǔ)的定義只有一個(gè)數(shù)據(jù)data,*pNext用于指向下一個(gè)節(jié)
    發(fā)表于 12-22 08:05

    Linux內(nèi)核中的數(shù)據(jù)結(jié)構(gòu)的一點(diǎn)認(rèn)識(shí)

    成員,那么到時(shí)候鏈表中沒有任何數(shù)據(jù),這樣的鏈表有什么用呢?其實(shí)這就是內(nèi)核鏈表設(shè)計(jì)的巧妙之處,因?yàn)樵谡麄€(gè)內(nèi)核中需要使用鏈表來存放的
    發(fā)表于 04-20 16:42

    stm32的8位數(shù)據(jù)結(jié)構(gòu)怎么判斷正負(fù)?

    stm32的8位數(shù)據(jù)結(jié)構(gòu)怎么判斷正負(fù),char變量不能為負(fù),不想用int,我記得51單片機(jī)char可以判斷正負(fù)
    發(fā)表于 09-22 07:15

    算法與數(shù)據(jù)結(jié)構(gòu)——雙向鏈表

    第三章為算法與數(shù)據(jù)結(jié)構(gòu),本文為3.3 雙向鏈表
    的頭像 發(fā)表于 09-19 17:56 ?7883次閱讀
    算法與<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>——雙向<b class='flag-5'>鏈表</b>

    數(shù)據(jù)結(jié)構(gòu)是什么_數(shù)據(jù)結(jié)構(gòu)有什么用

    數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可以帶來更高
    發(fā)表于 11-17 14:45 ?1.7w次閱讀
    <b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>是什么_<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>有什么用

    java數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)

    數(shù)據(jù)結(jié)構(gòu)是對(duì)計(jì)算機(jī)內(nèi)存中的數(shù)據(jù)的一種安排,數(shù)據(jù)結(jié)構(gòu)包括 數(shù)組, 鏈表, 棧, 二叉樹, 哈希表等,算法則對(duì)對(duì)這些結(jié)構(gòu)中的
    發(fā)表于 11-29 09:46 ?1054次閱讀

    什么是數(shù)據(jù)結(jié)構(gòu)?為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)的應(yīng)用實(shí)例分析

    本文檔的主要內(nèi)容詳細(xì)介紹的是什么是數(shù)據(jù)結(jié)構(gòu)?為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)?數(shù)據(jù)結(jié)構(gòu)的應(yīng)用實(shí)例分析包括了:數(shù)據(jù)結(jié)構(gòu)在串口通信當(dāng)中的應(yīng)用,數(shù)據(jù)結(jié)構(gòu)在按鍵
    發(fā)表于 09-26 15:45 ?14次下載
    什么是<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>?為什么要學(xué)習(xí)<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>?<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>的應(yīng)用實(shí)例分析

    區(qū)塊鏈的基本數(shù)據(jù)結(jié)構(gòu)解析

    區(qū)塊鏈?zhǔn)且环N分散式結(jié)構(gòu)的系統(tǒng),其中鏈表充當(dāng)事務(wù)塊的基本數(shù)據(jù)結(jié)構(gòu)。關(guān)于哪些事務(wù)塊應(yīng)該附加到它的決策是由共識(shí)算法決定的。有時(shí),選擇基本數(shù)據(jù)結(jié)構(gòu)比選擇特定的共識(shí)算法對(duì)速度、吞吐量、可伸縮性和
    發(fā)表于 01-03 14:49 ?8128次閱讀

    你知道Linux內(nèi)核數(shù)據(jù)結(jié)構(gòu)中雙向鏈表的作用?

    Linux 內(nèi)核提供一套雙向鏈表的實(shí)現(xiàn),你可以在 include/linux/list.h 中找到。我們以雙向鏈表著手開始介紹 Linux 內(nèi)核中的數(shù)據(jù)結(jié)構(gòu) ,因?yàn)檫@個(gè)是在 Linux 內(nèi)核中使用最為廣泛的
    發(fā)表于 05-14 17:27 ?2163次閱讀

    什么是棧?數(shù)據(jù)結(jié)構(gòu)中棧如何實(shí)現(xiàn)

    今天放松一下,我們來看看數(shù)據(jù)結(jié)構(gòu)中的棧,這節(jié)的知識(shí)點(diǎn)可以說是數(shù)據(jù)結(jié)構(gòu)中最容易上手的知識(shí)點(diǎn)了,其實(shí)比起鏈表,其實(shí)鏈表也有棧和隊(duì)列的模型,鏈表
    發(fā)表于 04-29 18:25 ?0次下載
    什么是棧?<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>中棧如何實(shí)現(xiàn)

    Linux內(nèi)核的鏈表數(shù)據(jù)結(jié)構(gòu)

    Linux內(nèi)核實(shí)現(xiàn)了自己的鏈表數(shù)據(jù)結(jié)構(gòu),它的設(shè)計(jì)與傳統(tǒng)的方式不同,非常巧妙也很通用。
    的頭像 發(fā)表于 03-24 11:34 ?1474次閱讀
    Linux內(nèi)核的<b class='flag-5'>鏈表</b><b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>

    Linux內(nèi)核中使用的數(shù)據(jù)結(jié)構(gòu)

    Linux內(nèi)核代碼中廣泛使用了數(shù)據(jù)結(jié)構(gòu)和算法,其中最常用的兩個(gè)是鏈表和紅黑樹。 鏈表 Linux內(nèi)核代碼大量使用了鏈表這種數(shù)據(jù)結(jié)構(gòu)。
    的頭像 發(fā)表于 11-09 14:24 ?1243次閱讀
    Linux內(nèi)核中使用的<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>