public void insert(LinkedListNode prevNode) {
    mNextNode.mPrevNode = mPrevNode;
    mPrevNode.mNextNode = mNextNode;

    mPrevNode = prevNode;
    mNextNode = prevNode.mNextNode;
    prevNode.mNextNode.mPrevNode = this;
    prevNode.mNextNode = this;
  }
 public void remove() {
   mNextNode.mPrevNode = mPrevNode;
   mPrevNode.mNextNode = mNextNode;
 }
 public LinkedListNode getNextCircularNode() {
   if (mNextNode.isHeaderNode() == true) return mNextNode.mNextNode;
   else return mNextNode;
 }
 public LinkedListNode getPrevCircularNode() {
   if (mPrevNode.isHeaderNode() == true) return mPrevNode.mPrevNode;
   else return mPrevNode;
 }
 public LinkedListNode getNextNode() {
   if (mNextNode.isHeaderNode() == true) return null;
   else return mNextNode;
 }