sean.jin
Spark Code Blog
sean.jin
전체 방문자
오늘
어제
  • 분류 전체보기
    • 개발공부
      • Kotlin
      • LeetCode
      • Algorithm
      • React
    • 주식차트
    • 책리뷰
    • 유틸리티

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 경제
  • 쿼드러플위칭데이
  • 오
  • 주식책리뷰
  • 책
  • 변동성
  • 부의 추월차선
  • 주식투자
  • 책리뷰
  • 초보
  • 트리플 위칭데이
  • 책추천
  • 자기개발
  • 주식입문자
  • 아빠와 딸의 주식투자 레슨
  • 네마녀의날

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
sean.jin

Spark Code Blog

[JavaScript] 206. Reverse Linked List - 쉬운설명, 인터뷰 필수 문제
개발공부/LeetCode

[JavaScript] 206. Reverse Linked List - 쉬운설명, 인터뷰 필수 문제

2022. 3. 6. 20:38
반응형

206. Reverse Linked List - Easy

Given the head of a singly linked list, reverse the list, and return the reversed list.

 

Example 1:

Input: head = [1,2,3,4,5]
Output: [5,4,3,2,1]

Example 2: 

Input: head = [1,2]
Output: [2,1]

Example 3: 

Input: head = []
Output: []

 

해설

문제 해결 전략

 

릿코드 디스커션에서 가져온 이미지입니다.

https://leetcode.com/problems/reverse-linked-list/discuss/1449712/Easy-C%2B%2BJavaPythonJavaScript-Explained%2BAnimated

이미지를 설명하자면, 3개의 포인터 current next prev를 사용하여 LinkedList를 reverse 해주는 것을 확인할수있습니다. 

 

 

구현 전략

 

prev, current, head 3 개의 포인터를 이용하여, 문제를 풀어주도록하겠습니다. 

 

 

 

head앞에 있는 node를 prev라는 이름으로  null을 가진 변수를 만들어줍니다.. 

 

그리고 currnet는 아직 아무것도 지정되지않았으므로 current로 이름짓고 null로 지정해주겠습니다.

 

 

LinkedList에서 화살표의 방향이 바뀌기전에, 포인터들을 이동해주겠습니다. 

 

null이였던 currnet의 값은 이제 head.next위치로 오게됩니다. 

 

 

이제 화살표 방향을 바꿔줄 차례입니다. head.next를 통해 head다음을 null로 가르키게 합니다. 

 

그리고 이 동작을 linkedList끝에 도달할때까지 반복해야하므로, prev와 head의 위치를 업데이트 해줍니다. 

 

그리고 head가 null을 가르킬때까지 반복시키면 linkedlist를 반전시킬수있게 됩니다. 

 

정답

var reverseList = function(head) {
    
    let prev = null
    let current = null
    
    while(head){
        current  =  head.next
        head.next = prev
        prev = head
        head = current 
        
        
    }
    return prev
        
        
};

 

반응형

'개발공부 > LeetCode' 카테고리의 다른 글

[JavaScript] 61. Rotate List Medium - 연결리스트 노드 옮기기, 쉬운설명, 반복문 사용  (0) 2022.03.13
[JavaScript] 21. Merge Two Sorted Lists - 쉬운설명  (0) 2022.03.08
[JavaScript] 22. Generate Parentheses 풀이과정 쉬운 설명 - backtrack, recursion 활용  (0) 2022.03.06
[LeetCode] 190. Reverse Bits - JAVASCRIPT 풀이 과정 , 개념 설명 - 비트 연산자  (0) 2021.12.26
[Kotlin] 선형리스트를 활용한 문제풀이 LeetCode: Delete Node in a Linked List  (0) 2021.07.09
    '개발공부/LeetCode' 카테고리의 다른 글
    • [JavaScript] 61. Rotate List Medium - 연결리스트 노드 옮기기, 쉬운설명, 반복문 사용
    • [JavaScript] 21. Merge Two Sorted Lists - 쉬운설명
    • [JavaScript] 22. Generate Parentheses 풀이과정 쉬운 설명 - backtrack, recursion 활용
    • [LeetCode] 190. Reverse Bits - JAVASCRIPT 풀이 과정 , 개념 설명 - 비트 연산자
    sean.jin
    sean.jin
    앱개발, 알고리즘, JS, Kotlin, 미국 취업준비

    티스토리툴바