-
<자료구조> 역순 연결 리스트유물/알고리즘 2022. 3. 13. 11:03728x90
🎯
{ 역순 연결 리스트 }
연결 리스트
1. 요소들끼리 붙어 있지 않고 서로의 위치정보를 포인터로 가지고 있습니다.
2. 맨 앞의 헤드 요소의 주소만 알 수 있기 때문에 특정요소를 찾기 위해서는 맨 앞에서부터 하나씩 타고 갑니다.
3. 요소를 추가하기가 비교적 쉽습니다(포인터만 수정하면 됨).
배열
1. 요소들끼리 다닥다닥 붙어있습니다
2. 인덱스를 통해서 원하는 요소를 바로 찾을 수 있습니다.
3. 요소를 추가하기가 어렵습니다(요소들의 위치를 하나씩 움직여야 함).
연결리스트 vs 배열
연결 리스트 배열 장점 1. 추가/삭제 빠름
2. 크기가 동적
3. 효율적인 메모리 할당/이용1. 탐색 시간 빠름
2. 노드당 메모리 적음
3. 캐시 지역성이 좋음단점 1. 탐색 시간 느림
2. 노드별 메모리 더 소모
(포인터를 같이 저장해야 함)1. 추가/삭게 느림
2. 크기가 고정
3. 비효율적인 메모리 할당/이용역순 연결 리스트
연결 리스트를 거꾸로 만들어봅니다.
코드로 먼저 확인하겠습니다.
def reverse_list(head: ListNode) -> ListNode: node = head prev = None while node: next = node.next node.next = prev prev = node node = next return prev
개념은 익힌거 같으나 정작 활용하려니 떠오르지 않아서 그림으로 정리해 보았습니다
📌
https://dev.to/gisakaze/difference-between-linked-list-and-array-462e
https://www.youtube.com/watch?v=TSDl7sRxWdU
728x90'유물 > 알고리즘' 카테고리의 다른 글
<프로그래머스(파이썬)> 입국심사 (0) 2022.04.07 <프로그래머스(파이썬)> 정수 삼각형 (0) 2022.04.07 <릿코드(파이썬)> 240. Search a 2D Matrix Ⅱ (0) 2022.04.01 <프로그래머스(파이썬)> [3차] 파일명 정렬 (0) 2022.03.31 <자료구조> 스택 (0) 2022.03.15