대충이라도 하자

Leetcode - Algo Challenge Day 5 - 2) Remove Nth Node From End of List 본문

꼬꼬마 개발자 노트/Leetcode Challenge

Leetcode - Algo Challenge Day 5 - 2) Remove Nth Node From End of List

Sueeeeee
반응형

*** 역시 어렵지만, 원리는 쉽다.

*** 끝에서 n번째 이기 때문에, 두 포인터 사이에 n만큼의 차이가 있으면 된다.

그렇기에, fast를 먼저, n만큼 앞서나가게 한 다음, slow와 fast를 똑같이 next시킨다. fast가 end에 닿으면, slow의 다음이 삭제되어야 할 노드이고 slow.next에 slow.next.next를 넣어주면 삭제!

*** 효율이 별로 좋지 못하다.

***아래와 같이 dummy node를 사용하지 않고도 가능하다.

***dummy node를 만들지 않으면, 훨씬 빠르다. ListNode start도 없어도 되므로 Memory usage도 better

대신, fast가 n 만큼 앞서나갔을 때, fast가 tail이 될 상황을 고려해 조건문을 넣어주어야 한다.

return도 처음의 head를 return 해주면 끝!

 

*****************************************************

공부해야할 것!!!!!!!!!!!!!!!!!!!!!!!!

1. Node와 LinkedList에 대해 다시 자세히 공부 -> return을 왜 저렇게 해주는지에 대해 완벽하게 이해 NO!

2. Next Challenges 문제도 풀어줘야 할 것 같다.

반응형
Comments