기어가더라도 제대로
[LeetCode-Swift] 92. Reverse Linked List II 본문
문제
링크드 리스트와 left, right 인덱스가 주어질 때 Left 인덱스 부터 right 인덱스까지를 뒤집은 Linked List를 반환하라.
- 뒤집는 다는 접근을 어떻게 할지감이 오지 않아서 오래 걸린 문제 -> 결국 답지를 보았다.
풀이
- 다양한 포인터가 필요할 것 같았는데, 크게는 p, tail, temp가 필요했다. 그리고 그들 사이에 연결을 뒤섞는 순서도 중요했다.
- 더미 노드와 P 포인터를 선언함
- p 포인터를 left-1까지 당겨옴
- p의 다음 포인터를 tail로 선언
- left-right의 길이 만큼 a,b,c,d 컴비네이션을 적용
- a) p의 다음 노드를 tmp로 지정한다.
- b) p의 다음 노드로 tail의 다음 노드를 지정한다.
- c) tail.next.next를 tail.next에 저장한다.
- d) p의 다음 다음 노드를 temp로 저장
글로 보면 이해가 안되서 그림으로 보는게 중요하다.
샘플 코드
소감
- 글이 어려울 땐 그림만한게 없다.
- 어려울 땐 도움을 받아서 내것으로 만들자.
출처
LeetCode - The World's Leading Online Programming Learning Platform
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
'CS > 알고리즘' 카테고리의 다른 글
[LeetCode-Swift] 236. Lowest Common Ancestor of a Binary Tree (0) | 2024.01.23 |
---|---|
[LeetCode-Swift] 138. Copy List with Random Pointer (0) | 2023.09.16 |
[백준 10986][swift] 나머지합 (0) | 2023.06.23 |
Comments