c语言 - 无法在链表中的第一个位置插入节点



我正在从事一个与制作 GIF 短片相关的帧编辑项目。我想添加一个函数来更改所选帧的位置。例如,如果我想将名为"3"的帧移动到第一个位置:

以前:

1->2->3->4->5->6->NULL

后:

3->1->2->4->5->6->NULL

当我选择列表中间或末尾的位置时,这东西对我有用,但在输入位置 1 时不起作用。 我的职能:

void insertFrameNode(FrameNode** list, FrameNode* addNode, int pos)
{
int i = 0; // for loops
FrameNode* before = *list;
FrameNode* head = *list;
if (pos == 1)
{
addNode->next = head;
*list = addNode;
}
else 
{
for (i = 0; i < pos - 2; i++)
{
before = before->next;
}
addNode->next = before->next;
before->next = addNode;
}

}

任何帮助将不胜感激。谢谢!

head 是列表的指针。 >然后你等同于列表的指针来添加节点。
因为:(*list)->next = head;===(*list)->next = addnode;===addnode->next = addnode

相关内容

  • 没有找到相关文章

最新更新