4 1 單鏈表逆轉 20分

2021-07-25 18:14:36 字數 1685 閱讀 6105

本題要求實現乙個函式,將給定的單鏈表逆轉。

函式介面定義:

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

#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()

list read()

scanf( "%d",&num );

list

= ( ptrtonode )malloc( sizeof( struct node ) );

list

->

data

= num;

list

->next =

null;

last =

list;

len--;

while( len >

0 )

return

list;

}void print( list l )

ptrtonode last = l;

while( null

!= last )

putchar( '\n' );}/*

思路:考慮鍊錶的特點,增加很容易,但是由於是單向鍊錶,

只有乙個next指標,那麼想進行反轉就需要知道上乙個節點的位置

並且要保留中間節點的next值

尾節點的next為null

*/list reverse( list l )

return rl;

}

4 1 單鏈表逆轉 20分

4 1 單鏈表逆轉 20分 本題要求實現乙個函式,將給定的單鏈表逆轉。list reverse list l 其中list結構定義如下 typedef struct node ptrtonode struct node typedef ptrtonode list 定義單鏈表型別 l是給定單鏈表,函...

6 1 單鏈表逆轉 20分

本題要求實現乙個函式,將給定的單鏈表逆轉。其中list結構定義如下 typedef struct node ptrtonode struct node typedef ptrtonode list 定義單鏈表型別 l是給定單鏈表,函式reverse要返回被逆轉後的鍊錶。裁判測試程式樣例 includ...

6 1 單鏈表逆轉 20分

本題要求實現乙個函式,將給定的單鏈表逆轉。函式介面定義 list reverse list l 其中list結構定義如下 typedef struct node ptrtonode struct node typedef ptrtonode list 定義單鏈表型別 l是給定單鏈表,函式revers...