KimMinJun
Coding Note
KimMinJun
전체 방문자
오늘
어제
  • 분류 전체보기 (487)
    • ALGORITHM (11)
      • 정렬 (6)
      • 최단경로 (1)
      • 자료구조 (1)
      • 슬라이딩 윈도우 (1)
      • etc (2)
    • Git (5)
    • Web (24)
      • Vanilla JS (13)
      • TS (2)
      • React (7)
      • ETC (1)
    • React 공식문서 (번역, 공부) (11)
      • Quick Start (2)
      • Installation (0)
      • Describing the UI (9)
      • Adding Interactivity (0)
      • Managing State (0)
      • Escape Hatches (0)
    • Next.js 공식문서 (번역, 공부) (3)
      • Getting Started (2)
      • Building Your Application (1)
    • PS (432)
      • 백준 (187)
      • Programmers (105)
      • CodeUp (21)
      • STL (3)
      • 제코베 JS 100제 (50)
      • SWEA (0)
      • LeetCode (65)
    • IT (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 관리

공지사항

인기 글

태그

  • Level 1
  • Level 0
  • programmers
  • 다이나믹 프로그래밍
  • 제코베 JS 100제
  • C
  • recursion
  • js
  • codeup
  • 그래프
  • 문자열
  • LeetCode
  • 백준
  • 수학
  • tree
  • Level1
  • string
  • 정렬
  • Level 2
  • C++

최근 댓글

최근 글

hELLO · Designed By 정상우.
KimMinJun
PS/LeetCode

LeetCode / Linked List / 206번 / Reverse Linked List / JS

LeetCode / Linked List / 206번 / Reverse Linked List / JS
PS/LeetCode

LeetCode / Linked List / 206번 / Reverse Linked List / JS

2023. 3. 29. 16:45

< 문제 바로가기 >

 

Reverse Linked List - LeetCode

Can you solve this real interview question? Reverse Linked List - Given the head of a singly linked list, reverse the list, and return the reversed list.   Example 1: [https://assets.leetcode.com/uploads/2021/02/19/rev1ex1.jpg] Input: head = [1,2,3,4,5] O

leetcode.com

 

< 문제 간단설명 >

주어진 Linked List의 노드의 순서를 반대로 바꾸면 되는 문제이다.

 

/**
 * Definition for singly-linked list.
 * function ListNode(val, next) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.next = (next===undefined ? null : next)
 * }
 */
/**
 * @param {ListNode} head
 * @return {ListNode}
 */
var reverseList = function(head, prev=null) {
  if(!head) return prev;

  let next = head.next;
  head.next = prev;

  return reverseList(next, head);
};

  1. 먼저 next라는 변수의 현재 head가 가리키고 있는 다음 노드인 head.next를 담는다.
  2. head.next는 현재 가리키고 있는 다음 노드와의 연결을 끊고, 이전의 노드를 가리킨다.
    (처음엔 null을 가리킨다)
  3. 처음의 head.next가 담긴 next는 head가 되고, head는 prev가 되면서 위의 과정을 순환한다.

위와 같은 과정으로 계속 순환하게 되는데, 결국 끝에가면 head는 null 값에 다다를 것이다.

그때는 prev를 반환해주면서 끝이나게 된다.

 

저작자표시 (새창열림)

'PS > LeetCode' 카테고리의 다른 글

LeetCode / Linked List / 142번 / Linked List Cycle II / JS  (0) 2023.04.01
LeetCode / Linked List / 876번 / Middle of Linked List / JS  (0) 2023.04.01
LeetCode / Linked List / 21번 / Merge Two Sorted Lists / JS  (0) 2023.03.29
LeetCode / String /392번 / Is Subsequence / JS  (0) 2023.03.27
    'PS/LeetCode' 카테고리의 다른 글
    • LeetCode / Linked List / 142번 / Linked List Cycle II / JS
    • LeetCode / Linked List / 876번 / Middle of Linked List / JS
    • LeetCode / Linked List / 21번 / Merge Two Sorted Lists / JS
    • LeetCode / String /392번 / Is Subsequence / JS
    KimMinJun
    KimMinJun

    티스토리툴바

    단축키

    내 블로그

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

    블로그 게시글

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

    모든 영역

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

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