数据结构c++循环单链表问题,急!!

CirSinglyList& operator+=(CirSinglyList &list) //尾插入list,集合并

 CirSinglyList& operator+=(CirSinglyList &list)
 {
     CirSinglyList *p = this;
     while(p->next != NULL)
         p = p->next;
     while(list->next != NULL)
     {
         p->next = new CirSinglyList();
         p->next = list;
         p = p->next;
     }
     p->next = NULL;
     return this;
 }
 CirSinglyList & operator=(CirSinglyList &list)
 {
 /* 自己写 */
 }

修改一下

  CirSinglyList& operator+=(CirSinglyList &list)
 {
     CirSinglyList *p = this;
     while(p->next != NULL)
         p = p->next;
     while(list->next != NULL)
     {
         p->next = new CirSinglyList();
         p->next = list;
         p = p->next;
        list = list->next;
     }
     p->next = NULL;
     return this;
 }
 CirSinglyList& operator=(CirSinglyList &list)
 {
 /* 自己写 */
 }