[연결 리스트]

연결 리스트는 데이터 요소의 선형 집합으로, 데이터의 순서가 메모리에 물리적인 순서대로 저장되지 않는다.

동적으로 새로운 노드를 삽입하거나 삭제하기가 간편하며, 연결 구조를 통해 물리 메모리를 연속적으로 사용하지 않아도 되기 때문에 관리도 싶다.

연결리스트는 배열과 달리 특정 인덱스에 접근 하기 위해서는 전체를 순서대로 읽어야 하므로 상수 시간에 접근 할 수 없다. 즉, 탐색에는 O(n)이 소요된다. 반면, 시작 또는 끝 지점에 아이템을 추가하거나 삭제, 추출하는 작업은 O(1)에 가능하다.

1)[팰린드롬 연결 리스트]-하, 연결리스트

연결 리스트가 팰린드롬 구조인지 판별하라

https://leetcode.com/problems/palindrome-linked-list/

[팁!!!]

-리스트로 바꾸어서 푸는 방법

-deque로 바꾸는것(popleft와 pop사용)

-Go언어로 풀면, 속도가 5배 빠르지만 밑 바닥부터 해야해서 비효율적으로 생산시간이 오래걸림

-링크드 리스트 방법

[러너 기법]

각각 빠른 런너, 느린 런너라고 부르는데, 대개 빠른 런너는 두 칸씩 건너뛰고 느린 러너(포인터)는 한 칸씩 이동하게 한다. 이때 빠른 런너가 연결 리스트의 끝에 도달하면, 느린 런너는 정확히 연결리스트의 중간 지점을 가리키게 된다. 이 같은 방식으로 중간 위치를 찾아내면, 여기서부터 값을 비교하거나 뒤집기를 시도하는 등 여러모로 활용 할수 있어서 연결 리스트 문제에서는 반드시 쓰이는 기법이기도 하다.

[다중 할당]

2개 이상의 값을 2개 이상의 변수에 동시에 할당하는 것을 말한다.