[C언어] Linked List (7) - recursiveReverse함수 구현하기

2025. 4. 13. 14:24·크래프톤 정글/Code 정글(C언어)
목차
  1. Linked List (7) - recursiveReverse함수 구현하기
  2. 주어진 요소 확인하기
  3. 핵심 아이디어
  4. 구현하기

Linked List (7) - recursiveReverse함수 구현하기

주어진 요소 확인하기

구조체

  • LinkedList: (struct) 연결 리스트 구조체
    • size: (int field) 연결 리스트 요소 갯수
    • *head: (pointer field) 연결 리스트 첫 노드의 주소
  • ListNode: (struct) 노드 구조체
    • item: (int field) 노드의 값
    • *next: (pointer field) 다음 노드의 주소

recursiveReverse 함수의 매개 변수

  • **ptrHead: (double pointer) 연결 리스트 시작 노드 주소의 주소

 

핵심 아이디어

  • 원래 연결 리스트의 끝 노드에 다다를 때까지 재귀적으로 다음 노드 이중 포인터(&nxt)를 넘긴다.
  • 끝에 다다르면 끝에서부터 next 방향을 반대로 연결하면서 올라온다. (next->next = cur)
  • 원래 연결 리스트의 시작 노드로 돌아오면 cur->next = NULL로 끝을 막아준다.
  • 이후 *ptrHead, 곧 연결 리스트 첫 노드 주소를 원래 연결 리스트 끝 노드 주소(nxt)로 변경한다.
    • 재귀 함수들이 복귀하며 *ptrHead 값이 마지막 노드의 주소 값으로 연속해서 갱신됨

 

구현하기

void RecursiveReverse(ListNode **ptrHead)
{
	if (*ptrHead == NULL || (*ptrHead)->next == NULL) return;

	ListNode *nxt = (*ptrHead)->next;
	RecursiveReverse(&nxt);

	(*ptrHead)->next->next = (*ptrHead);
	(*ptrHead)->next = NULL;

	*ptrHead = nxt;
}
저작자표시 비영리 변경금지 (새창열림)

'크래프톤 정글 > Code 정글(C언어)' 카테고리의 다른 글

[C언어] 스택(Stack) 구현 실습하기  (0) 2025.04.13
[C언어] 큐(Queue) 구현 실습하기  (0) 2025.04.13
[C언어] Linked List (6) - moveMaxToFront 함수 구현하기  (0) 2025.04.13
[C언어] Linked List (5) - frontBackSplitLL 함수 구현하기  (0) 2025.04.13
[C언어] Linked List (4) - moveEvenItemsToBackLL 함수 구현하기  (0) 2025.04.13
  1. Linked List (7) - recursiveReverse함수 구현하기
  2. 주어진 요소 확인하기
  3. 핵심 아이디어
  4. 구현하기
'크래프톤 정글/Code 정글(C언어)' 카테고리의 다른 글
  • [C언어] 스택(Stack) 구현 실습하기
  • [C언어] 큐(Queue) 구현 실습하기
  • [C언어] Linked List (6) - moveMaxToFront 함수 구현하기
  • [C언어] Linked List (5) - frontBackSplitLL 함수 구현하기
그냥사람_
그냥사람_
IT 관련 포스팅을 합니다. 크래프톤 정글 8기 정경호
  • 그냥사람_
    그냥코딩
    그냥사람_
  • 전체
    오늘
    어제
    • 글 전체보기 N
      • 크래프톤 정글 N
        • 로드 투 정글(입학시험)
        • CS기초(키워드, 개념정리)
        • 컴퓨터구조(CSAPP)
        • Code 정글(C언어)
        • Equipped in 정글(나만무) N
        • 마이 정글(WIL, 에세이)
      • 자료구조&알고리즘
        • 자료구조
        • 알고리즘
      • 일상
  • 블로그 메뉴

    • 홈
  • 링크

    • Github
  • hELLO· Designed By정상우.v4.10.3
그냥사람_
[C언어] Linked List (7) - recursiveReverse함수 구현하기

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.