如何在没有指向其头的指针的情况下将新节点插入到单链表中?
给定一个指向单链表上的中间节点(非头、非尾)的指针。如何在给定指针指向的节点之前插入新节点?
例子, 给定单链表:
A -> B -> C -> D -> E
给定一个指向C的指针(ptr = &C),和一个新节点F,如何获得
A -> B -> F -> C -> D -> E
注意:我们没有指向A的指针。
谢谢
Given a pointer that points to an intermediate node (non-head, non-tail) on a single-link list . How to insert a new node just before the node pointed to by the given pointer ?
Example,
Given single-linked list:
A -> B -> C -> D -> E
Given a pointer pointed to C (ptr = &C), and a new node F, how to get
A -> B -> F -> C -> D -> E
Attention: we do not have pointers pointed to A.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该能够通过在右侧插入一个新的 C 节点并在初始 C 节点的数据字段中写入 F 来实现此目的。
You should be able to implement this by inserting a new C node to the right, and writing F in the data field of the initial C node.
显然,这是不可能的。如果您需要该功能,请使用双向链表。否则,总是传递一个指向列表头部的指针。
Obviously, It can't be done. If you need that capability, use a doubly-linked list. Otherwise, always pass along a pointer to the head of the list.