[Linked List, Two Pointer] Remove Nth Node From End of List
2021. 4. 6. 14:15ㆍ카테고리 없음
Linked List와 n을 input으로 받았을 때, 뒤에서부터 n번째 원소를 지우고 다시 List를 리턴하는 문제.
two pointer를 사용할 것이다. pointer2은 0번째 원소를 pointer1 는 n번째 원소를 가리키도록 한다. 이는 n만큼 loop시키면 next를 옮기면 된다.
이 시점에서 ponter1을 끝까지 이동시키고(pointer.next가 null일때까지) 그 만큼 ponter2를 이동시키면, pointer2는 끝에서부터 n번째만큼 앞에 있는 원소를 가리킨다.
pointer2.next가 우리가 원하는 뒤로부터 n번째 원소이다. 따라서 next를 next.next로 바꿔준다.
만약 원소가 1개짜리라면 pointer1.next가 null이 된다.
그 경우 head를 .next를 이용해 옮겨준다.