打印输出,尽管head-> next为null

时间:2014-07-02 05:24:15

标签: linked-list

void create(node *head)//function to create a linked list
{
int n;
printf("enter number");
printf("if end enter -999");
scanf("%d",&n);
if(n == -999)
{
    head=NULL;
}
else
{
    head->data=n;       
    head->next=(node *)malloc(sizeof(node));        
    create(head->next);
}
return;
}

void print(node *head)//function to print linked list
{
if(head->next != NULL)
{
    printf("%d \n",head->data);
    print(head->next);
}
return;
}

这里当第一个数字输入为3而下一个数字输入为-999时,head->数据应为3,head->next应为NULL,当调用print函数时,不应输入if阻止head->nextNULL,但3正在打印。

为什么要打印3?

1 个答案:

答案 0 :(得分:0)

首先,这一切都取决于你在打印功能中传递的内容(打印功能中的头部是什么)。

我想你是这样写的,比如主函数: -

head =(node *)malloc(sizeof(node));

/////更多代码

现在你在打印功能中传递了这个头,其值为3并且head-> next是NULL而不是head。 我只是假设这是你必须编写主要功能的方式,如果是这样,那么我已经回答了你的问题。

谢谢