재귀
#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