public void RemovePrev()
        {
            // check for null
            if (currentNode == null)
            {
                return;
            }
            //change header
            if (currentNode.prevNode == headerNode)
            {
                headerNode = currentNode;
            }
            if (currentNode.nextNode == currentNode)
            {
                currentNode = null;
                headerNode  = null;
                return;
            }

            // remove perviuse node
            NodeCircular nodeSkip = currentNode.prevNode;

            if (nodeSkip != null)
            {
                currentNode.prevNode          = currentNode.prevNode.prevNode;
                currentNode.prevNode.nextNode = currentNode;
            }
            nodeSkip.prevNode = null;
            nodeSkip.nextNode = null;
            nodeSkip          = null;
        }
        /*public void AddToFirst(GameObject nodeItem)
         * {
         *  NodeCircular newFirstNode = new NodeCircular(nodeItem);
         *  newFirstNode.nextNode = headerNode;
         *  headerNode = newFirstNode;
         *  newFirstNode.prevNode = null;
         * }*/

        public void RemoveNext()
        {
            if (currentNode == null)
            {
                return;
            }
            if (currentNode.nextNode == headerNode)
            {
                headerNode = currentNode;
            }
            if (currentNode.nextNode == currentNode)
            {
                currentNode = null;
                headerNode  = null;
                return;
            }
            NodeCircular nodeSkip = currentNode.nextNode;

            if (nodeSkip != null)
            {
                if (currentNode.nextNode.nextNode != null)
                {
                    currentNode.nextNode          = currentNode.nextNode.nextNode;
                    currentNode.nextNode.prevNode = currentNode;
                }



                nodeSkip.prevNode = null;
                nodeSkip.nextNode = null;
                nodeSkip          = null;
            }
        }
        public MyCircularyLinkedList(GameObject nodeItem)
        {
            headerNode  = new NodeCircular(nodeItem);
            currentNode = headerNode;



            currentNode.nextNode = currentNode;
            currentNode.prevNode = currentNode;
        }
 public bool MoveToPrev()
 {
     if (currentNode.prevNode != null)
     {
         currentNode = currentNode.prevNode;
         return(true);
     }
     else
     {
         return(false);
     }
 }
 public bool MoveToNext()
 {
     if (currentNode.nextNode != null)
     {
         currentNode = currentNode.nextNode;
         return(true);
     }
     else
     {
         return(false);
     }
 }
        public void AddPrev(GameObject nodeItem)
        {
            NodeCircular newNode = new NodeCircular(nodeItem);

            newNode.nextNode = currentNode;
            newNode.prevNode = currentNode.prevNode;
            if (currentNode.prevNode != null)
            {
                currentNode.prevNode.nextNode = newNode;
            }

            currentNode.prevNode = newNode;
        }
 public void ResetToHeader()
 {
     currentNode = headerNode;
 }
 public NodeCircular(GameObject nodeInfo)
 {
     nodeInformation = nodeInfo;
     nextNode        = null;
 }