Добавить элемент в двусвязном списке

Помогите пожалуйста, не могу удалить элементы, которые идут после числа больше 5

    public unsafe struct ListNode
    {
        public double Data; 
        public ListNode* Next;
        public ListNode* Prev;
    }

    public unsafe struct SingleLinkedList
    {
        public ListNode* Head;
        public ListNode* Tail; 
        public int Count; 

        public static void AddFirst(SingleLinkedList* list, ListNode* Cur)
        {
            if (list->Head != null)
                Cur->Next = list->Head;
            else
                list->Head->Prev = list->Head;
            list->Tail = Cur;
            list->Head = Cur;
            list->Count++;
        }
        public static unsafe void AddLast(SingleLinkedList* list, ListNode* Cur)
        {
            if (list->Tail != null)
                list->Tail->Next = Cur;
            else
                list->Head = Cur;
            Cur->Prev = Cur;
            list->Tail = Cur;
            list->Count++;
        }           
    }

    static unsafe void Main(string[] args)
    {
        Console.WriteLine("End of list sign - 0");
        SingleLinkedList* list = stackalloc SingleLinkedList[sizeof(SingleLinkedList)];
        while (true)
        {
            Console.Write("Enter a number to list:");
            int n = int.Parse(Console.ReadLine());
            if (n == 0)
                break;
            ListNode* Current = stackalloc ListNode[sizeof(ListNode)];
            Current->Data = n;
            SingleLinkedList.AddLast(list, Current);
        }
        Console.WriteLine($"nNumber of elements - {list->Count}\n-----------------------------");

        ListNode* Cur = list->Head;
        Console.WriteLine("Output of list items");
        while (Cur != null)
        {
            Console.WriteLine(Cur->Data); 
            Cur = Cur->Next; 
        }
        Cur = list->Head;
        while (Cur != null)
        {
            if (Cur->Data < 0)
            {
                // Вставляем элемент после текущего
                ListNode* ItemAfterData = stackalloc ListNode[sizeof(ListNode)];
                ItemAfterData->Data = 10;
                ItemAfterData->Prev = Cur;
                ItemAfterData->Next = Cur->Next;
                if (Cur->Next != null)
                
                    Cur->Next->Prev = ItemAfterData;
                
                Cur->Next = ItemAfterData;
            }
            Cur = Cur->Next;
        }

        Console.WriteLine("After deleting items:");
        ListNode* Curr1 = list->Head;
        if (Curr1->Data > 5 && Curr1 == list->Head)
        {
            Curr1 = Curr1->Next;
            Curr1->Prev = null;
        }
        else
        {
            Curr1 = list->Head;
            while (Curr1->Next != null)
            {
                if (Curr1->Data > 5)
                {
                    Curr1->Prev->Next = Curr1->Next;
                    Curr1->Next->Prev = Curr1->Prev;
                }
                Curr1 = Curr1->Next;
            }
            if (Curr1->Next == null && Curr1->Data > 5)
            {
                Curr1->Prev->Next = null;
                list->Tail = Curr1->Prev->Next;
            }
        }
        ListNode* Cur2 = list->Head;

        Console.WriteLine("Result list:");
        Cur2 = list->Head;
        while (Cur2 != null)
        {
            Console.WriteLine(Cur2->Data);
            Cur2 = Cur2->Next;
        }
        Console.ReadKey();
    }

Ответы (0 шт):