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
- 코테
- 너비우선탐색
- coding
- Computer science
- 알고리즘
- DP
- cs
- 오퍼레이팅시스템
- 코딩
- 개발
- 정석학술정보관
- 브루트포스
- 구현
- 컴공과
- 북리뷰
- 자료구조
- 백준
- 컴공
- vector
- 그래프
- 스택
- Stack
- 정석
- 컴퓨터공학과
- bfs
- OS
- c++
- Operating System
- 문제풀이
- 오에스
Archives
- Today
- Total
Little Jay
Linked List Simple Question 본문
1. Circular Linked List 에서 임의의 Node 하나가 주어졌을 때, 이 List의 길이를 구하는 가장 효율적인 방법?
환영 링크드 리스트는 일반 링크드 리스트와 다르게 마지막에 있는 데이터의 next 주소값이 list의 front에 연결되어 있는 환영적인 구조이다. 따라서 임의의 노드가 주어졌을 때, 노드를 돌면서 같은 Node가 나올 때까지 list를 돌면 O(N)만에 구할 수 있을 것이다. 이때 값만 비교하는게 아니라 prev, next 주소값도 동일한 경우를 찾아야 할 것이다.
2. 중간에 만나는 두 LinkedList의 시작점이 주어졌을 때, 만나는 지점을 구하는 방법?
우선 두 list의 길이를 각각 구한다. 그 후 짧은 리스트를 두 리스트의 차이만큼 뒤로 밀고 길이를 맞춘다.
'알고리즘 > DataStructure' 카테고리의 다른 글
| Quick Sort, MergeSort with 백준 2751번 (0) | 2022.03.28 |
|---|---|
| [C++] 자료구조/Queue 구현 (0) | 2022.01.04 |
| [C++] 자료구조/Stack 구현 (0) | 2021.11.20 |
| [C++] 자료구조/LinkedList 구현 (0) | 2021.08.28 |
| [C++] 자료구조/Array 구현 (0) | 2021.07.22 |
Comments