給定一個(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)行對比 fast=head; while(fast!=NULL&&slow!=NULL){ if(fast->val!=slow->val) returnfalse; fast=fast->next; slow=slow->next; } returntrue; }
圖解代碼
第一步:定義快慢指針,并將其指向頭結(jié)點(diǎn)

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

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

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

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

分享、在看與點(diǎn)贊
只要你點(diǎn),我們就是胖友

原文標(biāo)題:數(shù)據(jù)結(jié)構(gòu):判斷鏈表回文結(jié)構(gòu)
文章出處:【微信公眾號:嵌入式攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
C語言
+關(guān)注
關(guān)注
183文章
7644瀏覽量
145580 -
代碼
+關(guān)注
關(guān)注
30文章
4968瀏覽量
73960 -
數(shù)據(jù)結(jié)構(gòu)
+關(guān)注
關(guān)注
3文章
573瀏覽量
41587 -
鏈表
+關(guān)注
關(guān)注
0文章
80瀏覽量
11057
原文標(biāo)題:數(shù)據(jù)結(jié)構(gòu):判斷鏈表回文結(jié)構(gòu)
文章出處:【微信號:嵌入式攻城獅,微信公眾號:嵌入式攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
數(shù)據(jù)結(jié)構(gòu)中最簡單的鏈表
Linux Kernel數(shù)據(jù)結(jié)構(gòu):鏈表
常見的數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)鏈表的基本操作
Linux內(nèi)核中的數(shù)據(jù)結(jié)構(gòu)的一點(diǎn)認(rèn)識
stm32的8位數(shù)據(jù)結(jié)構(gòu)怎么判斷正負(fù)?
數(shù)據(jù)結(jié)構(gòu)是什么_數(shù)據(jù)結(jié)構(gòu)有什么用
java數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)
什么是數(shù)據(jù)結(jié)構(gòu)?為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)?數(shù)據(jù)結(jié)構(gòu)的應(yīng)用實(shí)例分析
區(qū)塊鏈的基本數(shù)據(jù)結(jié)構(gòu)解析
你知道Linux內(nèi)核數(shù)據(jù)結(jié)構(gòu)中雙向鏈表的作用?
什么是棧?數(shù)據(jù)結(jié)構(gòu)中棧如何實(shí)現(xiàn)
Linux內(nèi)核的鏈表數(shù)據(jù)結(jié)構(gòu)
Linux內(nèi)核中使用的數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu):判斷鏈表回文結(jié)構(gòu)
評論