链表的长度为0,那么头节点为NULL吗 ?
在写链表的时候,遇到一个问题。
我让链表长度为0,然后在任意位置插入一个值
结果没有插入进去,说明头指针是NULL
在插入函数中有这样的代码来判断是否能插入。
之前创建链表,默认头节点的指针域为NULL,但数据域没管
所以链表长度为0,头节点到底是不是NULL?(求靓仔美女们给我一颗定心丸,蟹蟹)
bool insert_list(PNODE pHead, int pos, int val)
{
int i = 0;
PNODE tmp = pHead;
// if(NULL == tmp->pNext)
// return false;
while(NULL != tmp && i<pos-1)
{
tmp = tmp->pNext;
++i;
}
if(NULL == tmp || i > pos-1)**//在这里判断**
{
return false;
}
PNODE pNew = (PNODE)malloc(sizeof(NODE));
if(NULL == pNew)
{
printf("链表创建失败!");
exit(-1);
}
pNew->data = val;
pNew->pNext = tmp->pNext;
tmp->pNext = pNew;
return true;
}