编程实现一个单链表节点的删除
2017-08-07 10:54
295 查看
【单链表节点的删除】:
//删除单链表的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++程序员面试秘笈》
//删除单链表的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++程序员面试秘笈》
相关文章推荐
- 问题9:编程实现一个单链表的建立/测长/打印以及结点的删除。
- 编程实现单链表的删除节点
- 面试题2 编程实现单链表删除节点
- 编程实现一个单链表节点的插入
- 奇思妙想:删除单链表的一个节点
- 以O(1)时间删除单链表一个节点
- 编程实现一个单链表的查找
- C++实现单链表删除倒数第k个节点的方法
- 17_7_17:删除一个无头单链表的非尾节点。从尾到头打印单链表
- 如何编程实现删除一个sap的在线用户
- 一个用Java实现的双向队列,可以分别在头尾插入和删除节点
- (转)问题:假设一个没有头指针的单链表。一个指针指向此单链表中间的一个节点(既不是第一个,也不是最后一个节点),请将该节点从单链表中删除。
- 删除一个无头单链表的非尾节点+从尾到头打印单链表
- cc150:实现一个算法来删除单链表中间的一个结点,仅仅给出指向那个结点的指针
- 如何编程实现删除一个sap的在线用户
- 如何编程实现删除一个sap的在线用户
- 删除一个无头单链表的非尾节点
- 单链表删除一个节点(平安科技)
- C语言:【单链表】删除一个无头单链表的非尾节点
- cc150:实现一个算法来删除单链表中间的一个结点,只给出指向那个结点的指针