この問題は、機能を達成するために必要な順序リストが逆に設定されます、すなわちエンドヘッダがテーブルに設定され、テーブルは、ヘッダーの端に設定されています。次のようにLLIノードが定義されます。
構造体ListNode {
intデータ。
次のstruct ListNode *;
}。
定義インタフェース機能:
構造体ListNode *リバース(*構造体ListNodeヘッド);
前記ヘッドは、ユーザの頭部のポインタのリストを渡され、リストのセットに対するヘッドの逆の機能、およびヘッドポインタリストの結果を返します。
審判試験サンプルプログラム:
書式#include <stdio.hに>
する#include <stdlib.h>に含ま
構造体ListNode {
intデータ。
次のstruct ListNode *;
}。
構造体ListNode * createlist(); / 裁判实现、细节不表 /
構造体ListNode *リバース(構造体ListNode *ヘッド)
ボイドがprintlist(構造体ListNode *ヘッド)
{
構造体ListNode * P =ヘッド。
§{一方
;のprintf( "%がD『 P->データ)
; P = P->次
}
のprintf(』\ n");
}
INTメイン()
{
構造体ListNode *ヘッド。
head = createlist();
head = reverse(head);
printlist(head);
return 0;
}
/ *あなたのコードはここに埋め込まれます* /
サンプル入力:
123456-1
出力サンプル:
654321
struct ListNode *reverse( struct ListNode *head )
{
if(head==NULL||head->next==NULL)
return head;
struct ListNode *p=NULL,*t,*pp=head;
while(pp)
{
t=pp->next;
pp->next=p;
p=pp;
pp=t;
}
return p;
}