C#의 LinkedList<T> 클래스에서 RemoveFirst() 메서드는 연결 리스트의 맨 앞에 있는 첫 번째 노드를 제거할 때 사용합니다. 이 메서드는 내부적으로 첫 번째 노드만 다루기 때문에 O(1)의 시간 복잡도로 매우 빠르게 동작합니다.
LinkedList 선언하기
먼저 정수형 노드로 구성된 LinkedList를 만들어 보겠습니다.
int[] num = { 29, 40, 67, 89, 198, 234 };
LinkedList<int> myList = new LinkedList<int>(num);이 리스트에서 첫 번째 요소(29)를 제거하고 싶다면 RemoveFirst() 메서드를 호출하기만 하면 됩니다.
myList.RemoveFirst();
전체 예제 코드
아래는 RemoveFirst() 메서드를 활용한 전체 예제입니다. 제거 전후의 리스트 상태를 비교해 볼 수 있습니다.
using System;
using System.Collections.Generic;
class Demo {
static void Main() {
int[] num = { 29, 40, 67, 89, 198, 234 };
LinkedList<int> myList = new LinkedList<int>(num);
Console.WriteLine("원본 LinkedList:");
foreach (var n in myList) {
Console.WriteLine(n);
}
// 첫 번째 노드 제거
myList.RemoveFirst();
Console.WriteLine("\n첫 번째 노드 제거 후 LinkedList:");
foreach (var n in myList) {
Console.WriteLine(n);
}
}
}실행 결과
원본 LinkedList: 29 40 67 89 198 234 첫 번째 노드 제거 후 LinkedList: 40 67 89 198 234
실행 결과를 보면 첫 번째 값인 29가 사라지고, 나머지 요소들이 그대로 유지되는 것을 확인할 수 있습니다.
주의사항
- 리스트가 비어 있는 경우 RemoveFirst()를 호출하면 InvalidOperationException이 발생합니다. 호출 전에
Count > 0여부를 확인하는 것이 안전합니다. - 마지막 노드를 제거하려면 RemoveLast() 메서드를, 특정 값을 제거하려면 Remove(T) 메서드를 사용하면 됩니다.
- RemoveFirst()는 반환값이 없으며, 단순히 첫 번째 노드를 삭제하는 역할만 합니다.