如何合并(连接)2个列表?

时间:2017-05-06 15:47:35

标签: c++

这是我连接到列表的代码,但由于某些原因,它会在循环中结束并且不会停止。

  void concatenate(){
        p2 = first2;
        while (p2 != NULL) {
            p = new list;
            p->data = p2->data2;
            last->next = p;
            last = p;
            p2 = p2->next2;
        }
    }

数据 - 第一个清单的信息
data2 - 第二个列表的信息
last - 来自第一个列表的指针
p - 来自第一个列表的指针
p2 - 来自第二个列表的指针

1 个答案:

答案 0 :(得分:0)

 void concatenate(){

        last->next = first2; // done

  }

  //if not the same type or cannot be casted


   void concatenate(){
        if ( first2 == null ){
             last->next = 0;
             return;
         }

        last->next = new list(first2->data2); //connect the lists
        first2=first2->next;
        last=last->next;

        while( first2->next ) // copy the values
        {
            last->next = new list(first2->data2); 
            first2=first2->next;
            last=last->next;

        }
        last->next=0;
  }