发新话题
打印

我觉得这道题有问题,麻烦大家看一下.

我觉得这道题有问题,麻烦大家看一下.

设有带头结点的单链表L,编程对表中任一值只保留一个结点,删除其余值相同的结点。

答案算法是这样的:
Node * delete(Node *L)
{ node *p,*q,*tmp;
p=L;
while(p->next != null)
{ q=p;
   while(q->next != null)
   { if(q->next->val == p->val)
    { tmp = q->next;
     q->next = tmp->next;
     free(tmp);
    }
   else
    { q = q->next;
    }
  }
  }
return L;
}
这里好像只能将L头结点相同的值删掉,其它的没动静嘛.
而且这里说是带头结点的单链表,头结点一般不放数据吧.

麻烦大家帮着分析一下.答案是计算机研究生入学考试全真题解上摘下来的.

TOP

发新话题