単独リンクリストの逆転 - 再帰

再帰

書式#include <stdio.hに>

typedefは構造体{

   intデータ。

   次のstructノード*;

}ノード;

 

ノード* CreateNode(int値){

ノード* TEMP =(ノード*)はmalloc(はsizeof(ノード))。

temp->データ=値。

temp->次= NULL;

温度を返します。

}

ノード*ヘッド= NULL;

ボイドInsertNode(int値){

ノード* TEMP = CreateNode(値)。

IF(ヘッド== NULL){ヘッド=温度;}

他の{

ノード* P =ヘッド。

一方、(P->次の)P = P->次。

p型>次=温度;

}

}

ボイドPrintLinkedList(){

IF(ヘッド== NULL){

printf( "LinkedListのは、空である\ nは。");

}他{

ノード* TEMP =ヘッド。

一方、(TEMP){

printf( "%D =>"、temp->データ)。

TEMP = temp->次。

}

printf( "NULLの\ nを");

}

}

ボイドRevertLinkedList(){

もし(ヘッド== NULL ||頭部>次== NULL)のリターン;

ノード*事前= NULL;

ノード*現在=ヘッド。

ノード*次回=頭部>次。

一方、(次の){

電流>次=前;

=現在の前。

=次の電流;

次回=ネクスト>次;

}

電流>次=前;

ヘッド=現在;

}

メインint型()

{

   InsertNode(1)。

   InsertNode(2)。

   InsertNode(3)。

   InsertNode(4)。

   PrintLinkedList();

   RevertLinkedList();

   PrintLinkedList();

   0を返します。

}

 

 

1 => 2 => 3 => 4 => NULL

4 => 3 => 2 => 1 => NULL

おすすめ

転載: www.cnblogs.com/lilideng/p/11291288.html
おすすめ