小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

鏈表反轉(zhuǎn)

 求知665 2014-10-24

 鏈表反轉(zhuǎn)

 1.鏈表有兩種,一是帶頭結(jié)點的:頭結(jié)點存儲長度信息,頭結(jié)點的next指向第一個實際節(jié)點;二是不帶頭結(jié)點的,頭結(jié)點即第一個節(jié)點。這里使用帶頭結(jié)點的鏈表。

 2.需要三個指針,記錄當前節(jié)點(反轉(zhuǎn)用)、前一個節(jié)點、后一個節(jié)點(反轉(zhuǎn)之后前進用)。

 測試的時候,在創(chuàng)建鏈表的時候,注意實際的new這個節(jié)點。

還要注意鏈表為空的情況。

  1. /* 
  2.    鏈表 
  3.    1.帶頭結(jié)點的:head里面存放鏈表長度(或其他信息),head->next指向第一個實際節(jié)點; 
  4.    2.不帶頭結(jié)點的:head即第一個實際節(jié)點 
  5. */  
  6.   
  7. typedef struct Node  
  8. {  
  9.     int data;  
  10.     Node * next;  
  11. };  
  12.   
  13. void reverseList(Node *head)  
  14. {  
  15.     if ((head==NULL)||((head->next)==NULL))  return ; //如果head為空,或者頭結(jié)點指向空節(jié)點(鏈表長度為0),則退出。  
  16.       
  17.     Node *pre,*cur,*next; //cur 記錄當前位置,pre記錄上一個位置,為cur->next的值;next記錄下一個位置,反轉(zhuǎn)后cur不等于cur->next  
  18.       
  19.     cur=head->next;  
  20.     pre=NULL; //逆轉(zhuǎn)之后,頭結(jié)點變?yōu)槲补?jié)點,其next為Null  
  21.   
  22.     while (cur!=NULL)  
  23.     {  
  24.        next=cur->next;  //反轉(zhuǎn)后不能再用cur->next,所以先記錄下這個節(jié)點  
  25.        cur->next=pre;     
  26.        pre=cur;  
  27.        cur=next;  
  28.     }  
  29.   
  30.     head->next=pre;     //cur已經(jīng)為空,所以pre為尾節(jié)點。head->next指向它。  
  31.      
  32.     return ;  
  33. }  


  

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多