【单链表节点的删除】:
//删除单链表的pos位置的节点,返回链表头指针
//pos从1开始计算,1表示删除head后的第一个节点
node *delete_node(node *head, int pos)
{
node *item = NULL;
node *p = head->next;
int i = 0;
if(p == NULL)
{
cout << "Empty Link!" << endl;
return NULL;
}
while(i < pos) //通过循环定位到pos-1位置
{
p = p->next;
++i;
}
if(p != NULL && p->next != NULL)
{
item = p->next;
p->next = item->next;
delete item;
}
return head;
}
摘自《C和C++程序员面试秘笈》