《資料結構與演算法題目集~中文》
list reverse( list l );
其中list
結構定義如下:
typedef struct node *ptrtonode;
struct node ;
typedef ptrtonode list; /* 定義單鏈表型別 */
l
是給定單鏈表,函式reverse
要返回被逆轉後的鍊錶。
#include #include typedef int elementtype;
typedef struct node *ptrtonode;
struct node ;
typedef ptrtonode list;
list read(); /* 細節在此不表 */
void print( list l ); /* 細節在此不表 */
list reverse( list l );
int main()
/* 你的**將被嵌在這裡 */
5
1 3 4 5 2
1
2 5 4 3 1
(1)問題分析
待逆序的鍊錶l不帶頭結點,使用頭插法,在l的基礎上實現逆序
(2)實現要點
1、設定三個指標pre,head,next;
2、pre初始時置空,pre=null;
head指向l的第乙個結點head=l,
next指向l的第二個結點next=head->next;
3、什麼時候後結束逆序?
當l中所有結點都移到以pre為表頭的逆序鍊錶中時,head=null;
逆轉單鏈表
逆轉單鏈表 struct node reverse llist node head 此時temp表示以前的尾結點,p表示temp結點的前一結點 head temp 逆轉尾結點為頭結點 head next p 頭結點指標域指向p return head 逆轉迴圈鍊錶 struct node rever...
單鏈表逆轉
單鏈表逆轉 單鏈表逆轉,將單鏈表中各結點的next域改為指向其前驅結點。原先第乙個結點的next域為空,head改為指向原先的最後乙個結點。逆轉剛才如下圖所示 鍊錶類singlylist public class singlylist 構造單鏈表,由values陣列提供元素 public singl...
單鏈表逆轉
p 為指向非空單鏈表中第乙個結點的指標,本演算法逆轉鍊錶並返回逆轉後的頭指標。基本思路是 如果鍊錶中只有一 個結點,則空操作,否則先逆轉a2開始的鍊錶,然後將 a1聯接到逆轉後的鍊錶的表尾 即a2 之後。1 遞迴方法逆轉 單鏈表 2 node recreverselist node head 38 ...