本文主要是介绍无头单链表结点的删除、插入问题(不能遍历链表),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 删除一个无头单链表的非尾节点(不能遍历链表)
例如:
无法获取1结点的位置,删除2结点
void RemoveNoFirst(ListNode* pos)
{pos->data = pos->next->data;ListNode* del = pos->next;pos->next = pos->next->next;free(del);}
- 在无头单链表的一个节点前插入一个节点(不能遍历链表)
在3的后面插入一结点,将新插入结点的值和3结点的值交换
就可实现3结点前插入一个结点的功能
void InsertNoFirst(ListNode* pos, DataType data) {if (pos == NULL) {return;}ListNode* newNode = (ListNode *)malloc(sizeof(ListNode));assert(newNode);newNode->next = pos->next;pos->next = newNode;DataType temp = 0;temp = pos->data;pos->data = newNode->data;newNode->data = temp;
}
这篇关于无头单链表结点的删除、插入问题(不能遍历链表)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!