释放原先的链表所有结点 这个有有关问题啊请大神帮帮忙
释放原先的链表所有结点 这个有问题啊请大神帮帮忙
struct SNAKE *p_new = NULL;
if(snake == NULL)//没有任何节点时,先生成第一个节点
{
snake = (struct SNAKE*)malloc(sizeof(struct SNAKE));
snake->letter = NowLetter;
snake->pos = pos;
snake->NEXT = NULL;
return;
}
if(snake != NULL)//生成新的其它节点
{
//重玩游戏时,释放原先的链表所有结点
for(snake=p_new;p_new->next != NULL;p_new = p_new->next)
{
free(p_new->NEXT);
}
p_new = (struct SNAKE*)malloc(sizeof(struct SNAKE));
p_new->letter = NowLetter;
p_new->pos = pos;
p_new->NEXT = snake;
snake = p_new;
}
------解决思路----------------------
别的我不管,链表删除肯定有问题
struct SNAKE *p_new = NULL;
if(snake == NULL)//没有任何节点时,先生成第一个节点
{
snake = (struct SNAKE*)malloc(sizeof(struct SNAKE));
snake->letter = NowLetter;
snake->pos = pos;
snake->NEXT = NULL;
return;
}
if(snake != NULL)//生成新的其它节点
{
//重玩游戏时,释放原先的链表所有结点
for(snake=p_new;p_new->next != NULL;p_new = p_new->next)
{
free(p_new->NEXT);
}
p_new = (struct SNAKE*)malloc(sizeof(struct SNAKE));
p_new->letter = NowLetter;
p_new->pos = pos;
p_new->NEXT = snake;
snake = p_new;
}
------解决思路----------------------
别的我不管,链表删除肯定有问题
for(p_new = snake;p_new->next != NULL;p_new = p_new->next) //实现从前往后删除节点
{
struct SNAKE *temp = p_new->next;
if(temp != NULL)
{
p_new->next = temp->next;
free(temp);
temp = NULL;
}
}