Ejemplo n.º 1
0
        public void Add(DoublyLinkedListNode <T> newNode)
        {
            if (head == null) // if list is empty
            {
                head      = newNode;
                head.Next = head;
                head.Prev = head;
            }
            else
            {
                var tail = head.Prev;

                head.Prev    = newNode;
                tail.Next    = newNode;
                newNode.Prev = tail;
                newNode.Next = head;
            }
        }
Ejemplo n.º 2
0
        public void Remove(DoublyLinkedListNode <T> removeNode)
        {
            if (head == null || removeNode == null)
            {
                return;
            }

            if (removeNode == head && head == head.Next)
            {
                head = null;
            }
            else
            {
                removeNode.Prev.Next = removeNode.Next;
                removeNode.Next.Prev = removeNode.Prev;
            }

            removeNode = null;
        }
        public void Add(DoublyLinkedListNode <T> newNode)
        {
            if (head == null) // if list is empty
            {
                head = newNode;
            }
            else
            {
                var current = head;
                while (current != null && current.Next != null)
                {
                    current = current.Next;
                }

                // connect both side node
                current.Next = newNode;
                newNode.Prev = current;
                newNode.Next = null;
            }
        }