【发布时间】:2020-10-08 01:01:34
【问题描述】:
这段代码可以用来删除指定位置的节点吗
void del(node *&head,int position)
{
int jump=0;
node *temp=head;
while(jump<position-1)
{
temp=temp->next;
jump++;
}
node *copy=temp->next;
temp->next=temp->next->next;
delete copy;
还有什么是删除特定位置节点最有效的方法?
【问题讨论】:
-
这很有效,但缺少错误检查。如果
position大于您的列表大小怎么办?如果是0呢? -
当你问,这段代码可以删除节点吗?首先,它是否正常工作或者您是否有任何错误。你告诉我们。
-
接下来你缺少边缘情况,比如第一个和最后一个元素删除,需要额外注意。
-
显示的代码存在根本缺陷,无法正常工作。至于“最高效”,您能解释一下“最高效”对您意味着什么吗?
-
其他人也指出了我要指出的相同缺陷。
标签: c++ linked-list singly-linked-list