题目:
在无头单链表的一个节点前插入一个节点(不能遍历链表)
解题思路:
因为是无头节点,所以我们不知道给定位置之前的值。所以只能在给定位置pos之后插入。首先先申请一个节点空间,将新节点插入到给定位置pos的后面,然后将给定节点pos的值赋给新节点,然后再将要插入的值赋给pos。
如下图:
代码实现:
void InsertNode(SListNode *pos,DataType data)
{
assert(pos);
SListNode *pNewNode = (SListNode *)malloc(sizeof(SListNode));
pNewNode->data = pos->data;
pNewNode->pNext = pos->pNext;
pos->pNext = pNewNode;
pos->data=data;
}