Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Xóa tất cả nút khỏi LinkedList trong C#

Giới thiệu

Phương thức Clear() của LinkedList<T> xóa tất cả các nút (nodes) khỏi danh sách liên kết, đưa Count về 0. Danh sách trở thành rỗng nhưng đối tượng LinkedList vẫn tồn tại.

Ví dụ 1

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        int[] num = { 10, 20, 30, 40, 50 };
        LinkedList list = new LinkedList(num);

        Console.WriteLine("Các nút trong LinkedList...");
        foreach (var n in list)
        {
            Console.WriteLine(n);
        }

        list.Clear();

        Console.WriteLine("LinkedList hiện đang rỗng!");
        foreach (var n in list)
        {
            Console.WriteLine(n); // Không in gì cả
        }
    }
}

Kết quả

Các nút trong LinkedList...
10
20
30
40
50
LinkedList hiện đang rỗng!

Ví dụ 2

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        LinkedList list = new LinkedList();
        list.AddLast("A");
        list.AddLast("B");
        list.AddLast("C");
        list.AddLast("D");
        list.AddLast("E");
        list.AddLast("F");
        list.AddLast("G");
        list.AddLast("H");
        list.AddLast("I");
        list.AddLast("J");

        Console.WriteLine("Số lượng nút = " + list.Count);

        list.Clear();

        Console.WriteLine("Số lượng nút (sau Clear) = " + list.Count);
    }
}

Kết quả

Số lượng nút = 10
Số lượng nút (sau Clear) = 0

Lưu ý quan trọng

  • Clear() xóa tất cả nút, độ phức tạp O(n) vì phải giải phóng từng nút.
  • Sau Clear(), First và Last trả về null.
  • LinkedList không có phương thức RemoveRange(), chỉ có Remove() (xóa 1 nút) và Clear().
  • Khác với List<T>, LinkedList không dời chuyển phần tử khi xóa, chỉ cập nhật con trỏ.
  • Để xóa nút cụ thể, dùng Remove(value) hoặc Remove(node).