国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言解字符串逆序和單向鏈表逆序問題的代碼示例

2020-01-26 14:34:04
字體:
來源:轉載
供稿:網友

字符串逆序
上次面試碰到一個單向鏈表逆序的題目,幸好對字符串逆序比較熟悉,類比做出來了。字符串逆序比較簡單,直接上代碼:

void stringReverse(char* p1,char* p2) {  if(p1==p2)return;  //swap the value of p1 ,p2  *p1=(*p1)+(*p2);  *p2=(*p1)-(*p2);  *p1=(*p1)-(*p2);   if(p1==p2-1)return;   else stringReverse(++p1,--p2); } 

調用示例:

stringReverse(str,str+strlen(str)-1); 

單向鏈表逆序
先上三幅圖:原始狀態是圖一,全部逆序之后是圖三的樣子,圖二是逆序一步之后的樣子。按照圖二的步驟依次往后,每次移動一步,把p1->next 反向,直到全部逆序。詳細原理請看代碼。
圖一:

201666144741552.png (619×144)

圖二:

201666144815285.png (619×144)

圖三:

201666144831984.png (619×144)

typedef struct Node Node; struct Node{  int data;  Node* next; };  Node* reverseLinkList(Node* head){  if (head==NULL||head->next==NULL) {   return head;  }  Node* p1 = head;  Node* p2 = p1->next;  Node* p3 = p2->next;  p1->next = NULL;//p1要變成尾指針,所以指向NULL  while (p3!=NULL) {   p2->next = p1;//p2->next 反向   p1=p2;//p1指針向后移動一步   p2=p3;//p2指針向后移動一步   p3=p3->next;//p3指針向后移動一步  }  p2->next=p1;//p3指向了NULL,p2反向  head=p2;//頭指針指向之前的尾指針  return head; } 

至此結束了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 鲁山县| 湛江市| 台东市| 南通市| 岢岚县| 陈巴尔虎旗| 郁南县| 美姑县| 沁阳市| 沂水县| 镇原县| 股票| 巍山| 新龙县| 井冈山市| 怀远县| 介休市| 三台县| 斗六市| 公安县| 万宁市| 桓仁| 大洼县| 南阳市| 洛隆县| 盐山县| 文安县| 兴文县| 南投市| 江孜县| 修武县| 平昌县| 新沂市| 鄂伦春自治旗| 东莞市| 满城县| 东乌珠穆沁旗| 郴州市| 聂拉木县| 图们市| 西畴县|