bool ListInsertHead(Node *pNode)
{
pNode->next=m_pList->next;
m_pList->next=pNode;
if(m_pList-next==pNode)
{
return true;
}
else
{
return false;
}
}
bool ListInsertTail(Node *pNode)
{
Node *currentNode=m_pList;
while(currentNode->next!=NULL)
{
currentNode=currentNode->next;
}
currentNode->next=pNode;
pNode->next=NULL;
if(currentNode->next==pNode)
{
return true;
}
else
{
return false;
}
}直接将传入的结点作为链表中新添加的结点内存,是不安全的。因为传入的结点内存是有可能在链表外被释放掉的,如果被释放掉,则链表就会断开失效;而申请一个新的结点内存作为链表的结点内存,则该内存只有在链表中才可以被释放掉,这样保证了链表内存是安全释放的;
不可以啊 看Head函数中,第一行语句已经改变了pNode的指针域,接着的第二行语句中pNode就不是你之前传进来的结点。。。。就像交换a与b 的值,需要定义一个temp值
不可以,调用完会销毁