Function to remove an item from Linked List in C#

Here is the code:

 class Program
    {
        static void Main(string[] args)
        {
       //   This Solution is written by me and is not completely tested. Please comment if you found any alternative solutions or any enhancement to my solution.
            LinkedList l = new LinkedList();

            l.add(1);
            l.add(2);
            l.add(3);
            l.add(4);
            l.add(5);
            l.add(6);
            l.Display();
            l.remove(6);
            l.Display();
            l.remove(1);
            l.Display();
            l.remove(3);
            l.Display();
        }
    }
    public class LinkedList
    {
        public node head { get; set; }
        public void add(int data)
        {
            node n = new node(data);         
            if (head == null)
            {
                head = n;
            }
            else
            {
                var temp = head;
                while (temp.next != null)
                {
                    temp = temp.next;
                }
                temp.next = n;
            }
        }
        public void remove(int data)
        {
            var temp = head;
            if (head.data == data)
            {
                head = head.next;
            }
            else
            {
                while (temp.next != null)
                {
                    if (temp.next.data == data)
                    {
                        temp.next = temp.next.next;
                        return;
                    }
                    temp = temp.next;

                }
            }
        }
        public void Display()
        {
            var temp = head;
            Console.WriteLine("------------");
            while (temp != null)
            {
                Console.WriteLine(temp.data);
                temp = temp.next;
            }
            Console.WriteLine("------------");
        }
     
    }
    public class node
    {
        public int data { get; set; }
        public node next { get; set; }
        public node(int _data)
        {
            data = _data;
        }
    }




Output:
------------
1
2
3
4
5
6
------------
------------
1
2
3
4
5
------------
------------
2
3
4
5
------------
------------
2
4
5
------------
Press any key to continue . . .

No comments:

Post a Comment

Popular Posts