LeetCode - Reverse Linked List

goodlana·2020년 9월 1일
0

문제

LeetCode - Reverse Linked List

풀이

// recursive (재귀 ver.)

var reverseList = function(head, prev=null) {
    if(!head) return prev;
    let temp = head.next
    head.next = prev;
    return reverseList(temp, head);
};

// iterative (반복문 ver.)

var reverseList = function(head) {
    let node = head, reversed = null;
    while(node){
        let temp = node;
        node=node.next;
        temp.next = reversed;
        reversed = temp;
    }
    return reversed;
};
  • 재귀를 사용해서 풀려고 했는데 잘 되지 않았다..ㅠ
  • 풀이를 봐도 이해가 안갔는데, 아래 동영상을 보고 reverseList를 이해할 수 있었다.
    • 나는 노드의 위치를 바꾸는 것만 생각했는데, 풀이를 보니 노드가 향하는 방향을 바꿔주기만 하면 되는거라.. 허탈했다. ㅜㅠ

동영상으로 이해하는 Reverse Linked List

재귀

반복문

profile
Let's code like chord !

0개의 댓글