2 linukey linukey 于 2014.11.08 17:05 提问

为什么删除链表后又倒着输出来了?

#include
#include
#include
using namespace std;
typedef struct node
{
struct node* next;
int number;
int data;
}NODE;
void node_add(NODE**,int,int);
void node_show(NODE*);
void node_delete(NODE**);
int main()
{
NODE* head = NULL;
node_add(&head,1,100);
node_add(&head,2,200);
node_add(&head,3,300);
node_show(head);
node_delete(&head);
node_show(head); //这里为什么又倒着输出了,不是删除了,应该输出随机数吗?
head = NULL;
return 0;
}
void node_add(NODE** head,int number,int data)
{
if(*head == NULL)
{
NODE* node = (NODE*)malloc(sizeof(NODE));
if(node == NULL)
{
cout<<"分配内存失败"< }
node->data = data;
node->number = number;
node->next = NULL;
head = node;
}
else
{
NODE
tem = *head;
while(tem->next)
{
tem = tem->next;
}

    NODE* node = (NODE*)malloc(sizeof(NODE));
    if(node == NULL)
    {
        cout<<"分配内存失败"<<endl;
    }
    node->data = data;
    node->number = number;
    node->next = NULL;
    tem->next = node;
}

}
void node_show(NODE* head)
{
while(head)
{
cout<number<<" "<data< head = head->next;
}
}
void node_delete(NODE** head)
{
NODE* tem = NULL;
while((*head)->next)
{
tem = (*head)->next;
free(*head);
*head = tem;
}
free(*head);
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!