일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 비동기
- 오브젝트
- Codable
- scrollview
- 데드락
- async
- 앨런
- 가상 메모리
- UserDefaults
- Algorithm
- IOS
- @state
- 프로세스 스케줄링
- 인프런
- SwiftUI
- COLOR
- deadlock
- 동기화
- 상호배제
- Swift
- struct
- 동시성
- 알고리즘
- decode
- core data
- Apple Developer Academy
- 100 days of SwiftUI
- Linked List
- 운영체제
- forEach
Archives
- Today
- Total
기어가더라도 제대로
[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로 저장
글로 보면 이해가 안되서 그림으로 보는게 중요하다.
샘플 코드
소감
- 글이 어려울 땐 그림만한게 없다.
- 어려울 땐 도움을 받아서 내것으로 만들자.
출처
'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