Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Swift Package Manager
- 기존 앱
- UIViewControllerTransitioningDelegate
- UIPresentationController
- 상단 탭바
- Tuist
- Android
- DataBinding
- SwiftUI
- convert base64
- 개발자 면접
- base64 변환
- oberve url
- Side Menu
- swift
- transformation.map
- List
- detect url
- notifychanged
- swift #swift keychain #keychain 사용법
- pod install
- ios
- 스크롤 탭
- url 추적
- url 관찰
- ViewBuilder
- GeometryReader
- scrolling tab
- development language
- DevelopmentRegion
Archives
- Today
- Total
버그 잡이
Swift - Linked List 구현 연습 #Reverse Linked List 본문
아래 영상을 보고 학습한 내용을 정리한 글임을 밝힙니다.
https://www.youtube.com/watch?v=Msv0D5zwmHQ
import Foundation
final class ListNode {
// ListNode는 본인의 값(value)와 다음 값의 포인터(next)를 가지고 있는 객체이다.
let value: Int
var next: ListNode?
init(value: Int) {
self.value = value
}
}
func createLinkedList() -> ListNode {
// 1. value만 있는 node Array를 생성해주고
let nodes: [ListNode] = Array(1...10).map { ListNode(value: $0) }
// 2. head 노드 생성
let head = ListNode(value: 0)
// 3. for문을 활용하여 next를 넣어주면 끝
var current = head
for i in 0..<nodes.count {
current.next = nodes[i]
current = nodes[i]
}
return head
}
func printLinkedList(_ node: ListNode) {
var curr: ListNode? = node
var str = ""
while curr != nil {
str += "\(curr?.value ?? 0) -> "
curr = curr?.next
}
print(str)
}
// ListNode 뒤집기
func reverseLinkedList(_ node: ListNode) -> ListNode? {
var prevNode: ListNode? = nil
var headNode: ListNode? = node
while headNode != nil {
2. 다음 노드는 역전해주기 전에 저장해둔다.
let nextNode = headNode?.next
1. next 노드를 역전해준다.
headNode?.next = prevNode
3. return값을 위해서 prevNode값을 저장해두고, headNode는 미리 저장해둔 nextNode로 치환한다
prevNode = headNode
headNode = nextNode
}
return prevNode
}
반응형
'Swift' 카테고리의 다른 글
기존 레거시 프로젝트에 Tuist 적용해보기 (0) | 2023.06.05 |
---|---|
TCA란 무엇이고 어떻게 Composable 할 수 있는가? (0) | 2023.05.27 |
Swift - base64 <-> UIImage 변환 방법 (0) | 2021.11.30 |
WebView 내에서 url 이동을 관찰하는 방법 #Swift #WKWebview (0) | 2021.11.30 |
Swift - async / await & async let 기초 (0) | 2021.07.08 |
Comments