private void DeleteMiddleOne(DeleteMiddleNode dm, int val)
        {
            Node curr = head;

            while (curr != null)
            {
                Console.WriteLine($"BEFORE DELETION - Elements in the linked-list are {curr.Value}");
                curr = curr.Next;
            }

            curr = head;
            while (curr != null)
            {
                //traverse to the middle value
                if (curr.Value == val)
                {
                    curr.Next = curr.Next.Next;
                }
                curr = curr.Next;
            }

            curr = head;
            while (curr != null)
            {
                Console.WriteLine($"AFTER DELETION - Elements in the linked-list are {curr.Value}");
                curr = curr.Next;
            }
        }
        public static void MainMethod()
        {
            DeleteMiddleNode dm = new DeleteMiddleNode();

            dm.AddNodeAtStart(12);
            dm.AddNodeAtLast(9);
            dm.AddNodeAtLast(11);
            dm.AddNodeAtLast(6);
            dm.AddNodeAtLast(25);
            dm.AddNodeAtLast(14);

            dm.DeleteMiddleOne(dm, 9);
        }