C 用链表理解按位置插入

C 用链表理解按位置插入,c,data-structures,linked-list,C,Data Structures,Linked List,我试图理解C中的按位置插入链表。我通过以下途径找到此代码: 如果左侧的下一个节点指针指向temp,那么它不会被left=temp覆盖吗?你能把这个改写成: left->next=temp; temp->next=right 有人能给我解释一下吗?谢谢。您的建议与原始代码中发布的内容相同。 它的值被分配给指针(因为temp、left、right都是指针),所以列表元素不会被写入内容覆盖 left=temp; 但“temp”指针下的元素在“left”指针下也可用 就个人而言,我同意您

我试图理解C中的按位置插入链表。我通过以下途径找到此代码:

如果左侧的下一个节点指针指向temp,那么它不会被left=temp覆盖吗?你能把这个改写成:

left->next=temp;
temp->next=right

有人能给我解释一下吗?谢谢。

您的建议与原始代码中发布的内容相同。 它的值被分配给指针(因为temp、left、right都是指针),所以列表元素不会被写入内容覆盖

left=temp;
但“temp”指针下的元素在“left”指针下也可用

就个人而言,我同意您的代码更容易理解/阅读。这一切都是关于编写与实际操作相匹配的代码,而不是用额外的变量或赋值来混淆代码


无论如何,在您了解链表的工作原理之后,您可以预期这样的函数将起什么作用,并且任何实现都更易于阅读和理解。

您的解决方案同样正确。
更好的方法是删除正确的指针

temp->next = left->next
left->next = temp

注意:您可能需要更改上面的部分代码

是的,您的替代方案与原始代码一样有效。那么为什么要使用left=temp?因为您必须询问作者,其他人无法回答。我自己也看不出有什么原因。一支铅笔和一张纸可能会有帮助。一般来说,代码不是很好。不要将它用作如何编写代码的示例。
left=temp;
temp->next = left->next
left->next = temp