单链表创建,为什么是返回head而不是返回pNode

truct LNode { int data; struct LNode next; }; //创建链表,count为创建的链表的节点数目 struct LNode *create(int count) { int i; struct LNode *pNode = NULL; struct LNode *pNewNode = NULL; struct LNode *head = NULL; printf("Input the integers :\n"); for(i = count;i > 0;i--) { pNewNode = (struct LNode)malloc(sizeof(struct LNode));//分配节点空间 scanf("%d",&pNewNode->data); if(head == NULL) //指定头结点 { head = pNewNode; pNode = pNewNode; } else { pNode->next = pNewNode; pNode = pNewNode; } } pNode->next = NULL; return head; }

因为链表可以通过表头元素拿到其它所有的元素,所有一般键表返回的都是表头~~~

注意单链表的结构定义:

 struct LNode 
{ 
    int data; //数据域
    struct LNode next; //指针域
};

每个节点分为两个域:
一个是数据域,用来存储本身数据。
一个是指针域,用来存储 下一个 结点地址。

单链表通常用在每次都只会 按顺序遍历 这个链表的时候。
有始方有终,返回表头,然后借助指针域就可以遍历整个链表。

链表的最后一个节点,其指针域值为 NULL

 pNode->next = NULL; 

如果返回的不是表头,而是PNode,显然就没有什么用了。