数据结构PTA第二周作业1

  • Post author:
  • Post category:其他


题目:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

单向链表合并比较简单,但是想通过PTA的测试还是要注意审题的。


注意点1:

规定了原链表和返回的链表都有头节点。


注意点2:

输出样例除了要求输出的L正确,原来的L1,L2都要输出NULL。(就是这一点不注意导致一直卡着没AC)并且空链表也是要有头结点的,让L1,L2本身值为NULL是不行的,那样L1,L2就不再是链表了。

List Merge( List L1, List L2 )
{
  //List L;
  //List Temp = L;
  List L, Temp, p1, p2;
  L = (List)malloc(sizeof(struct Node));
  Temp = L;
  
  p1=L1->Next;
  p2=L2->Next;
  while(p1!=NULL && p2!=NULL)
  {
    if(p1->Data <= p2->Data){
      Temp->Next = p1;
      p1 = p1->Next;
      Temp = Temp->Next;
    }
    else{
      Temp->Next = p2;
      p2 = p2->Next;
      Temp = Temp->Next;
    }
  }
  if(p1==NULL)Temp->Next = p2;
  if(p2==NULL)Temp->Next = p1;
  
  L1->Next=NULL;
  L2



版权声明:本文为chengda321原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。