단일 쇄 반전 반복적 방법은 반복 (사이클)에 의해 구현되는 곳에는, 재귀 수 가능하다.
전 전에 노드를 참조 아래 다이어그램, CUR은 현재 노드, 임시 노드 TEMP를 의미합니다.
주요 아이디어는 것입니다 Cur 코드> 다음 = 사전, 옆에 TEMP에 할당 된 Cur 코드>를 향상시키는 데 필요한 즉, 현재 노드 포인트 전에 노드를 만들 . 그런 다음 아래로.
#INCLUDE <STDIO.H> 의 typedef 구조체 node_s { INT 항목; 구조체 node_s은 * 다음; } node_t, * 링크; // 新建节点 링크 newNode ( INT의 항목) { 링크 새로운 = malloc을 ( 를 sizeof (node_t)); 새 -> 아이템 = 항목; 새 -> 다음 = NULL; 반환 새로운 ; } 역방향 링크 (링크 헤더) { 경우 (헤더 == NULL || header-> 다음 == NULL) { 반환 헤더를} 링크 사전;// 이전 링크 CUR; // 이 링크 TEMP; // 임시 변수 사전 = 헤더, CUR = header-> 다음으로, 사전 -> 다음 = NULL; 그동안 (! CUR = NULL) { TEMP = 똥개> 다음; //하지 실수로 순서 참고 > CUR 다음 = 사전, 사전 = CUR; CUR = TEMP; } 리턴 프리; } 무효 프린트 링크 (* node_t의 헤더) { while 회 (헤더! = NULL) { IF (header-> 다음 =!NULL) { 의 printf ( " % D-> " ;, header-> 항목) // : 마지막 } 다른 { 의 printf ( " % d 개 " , header-> 항목); } 헤더 = header-> , 다음 } 의 printf ( " \ N- ' ); } INT 본체 ( 의 INT 는 argc, 숯불 * argv와 []) { // 단방향 링크 생성 헤더 = NULL을 node_t * * CUR = NULL; 대 ( INT I = . 1 , I <= . (3) , ++ I) { node_t * 새로운 새 = newNode (I), IF (헤더 == NULL) { 헤더 = 새로운 새 ; } 다른 { CUR -> 다음 = 새로운 새 ; // 나중에 추가 } CUR = 새로운 새로운 ; } 프린트 링크 (헤더); // 인쇄 목록 newHeader = 역 (헤더)에 자동; // 자동 키워드 만 할당 문에서 (newHeader에) 프린트 링크; 시스템 ( "일시 정지 " ); }