단일 연결리스트 반전 - 재귀

재귀

#INCLUDE <STDIO.H>

타입 정의 구조체 {

   int 데이터;

   구조체 노드 * 다음;

}마디;

 

노드 * CreateNode (int 값) {

노드 * 온도 = (노드 *)의 malloc (sizeof 연산자 (노드));

temp-> = 데이터 값;

temp-> 다음 = NULL;

온도를 반환;

}

노드 * 머리 = NULL;

{InsertNode (INT 값) 무효화

노드 * 온도 = CreateNode (값);

경우 (헤드 == NULL) {= 헤드 온도}

다른 {

* 노드를 p = 헤드;

반면 (P-> 다음) p = P -> 다음;

P-> 다음 = 온도;

}

}

보이드 PrintLinkedList () {

경우 (머리 == NULL) {

의 printf ( "LinkedList의 비어합니다. \ n");

} 다른 {

노드 * 온도 = 헤드;

반면 (TEMP) {

의 printf ( "%의 D =>"temp-> 데이터);

온도 = temp-> 다음;

}

의 printf ( "NULL \ 없음");

}

}

보이드 RevertLinkedList () {

경우 (머리 == NULL || 머리 -> == NULL 다음) 반환;

노드 * 사전 = NULL;

노드 * 전류 = 헤드;

* 다음 노드 = 헤드 -> 다음;

동안 (다음) {

전류> 다음 = 프리;

= 현재 프리;

= 다음 현재;

다음 =하는 next-> 다음;

}

전류> 다음 = 프리;

헤드 = 현재;

}

() 주요 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