C++ 删除只在节点上的单链表中间的一个节点。C++;
在这里提交代码之前,我想知道我的想法是否正确,因为我已经找到了这个问题的“正确”答案 是否可以通过查找给定节点的位置,然后使用常规的“在给定位置删除”功能来解决此问题?因此,基本上,前一个节点将指向给定节点的下一个节点。i、 e,如果s是给定的节点,则ptr是上一个节点,然后ptr->next=s->next。这是对的吗?你说得对 假设要删除的节点是delNode 您建议的解决方案分为两部分:C++ 删除只在节点上的单链表中间的一个节点。C++;,c++,linked-list,C++,Linked List,在这里提交代码之前,我想知道我的想法是否正确,因为我已经找到了这个问题的“正确”答案 是否可以通过查找给定节点的位置,然后使用常规的“在给定位置删除”功能来解决此问题?因此,基本上,前一个节点将指向给定节点的下一个节点。i、 e,如果s是给定的节点,则ptr是上一个节点,然后ptr->next=s->next。这是对的吗?你说得对 假设要删除的节点是delNode 您建议的解决方案分为两部分: 在列表中搜索其索引 然后删除[索引]处的节点 时间复杂度是O(n)-其中n是列表的大小。(第1部分最坏
- 时间复杂度为O(1)
- delNode.next==Null李>
- 多态列表。 对于具有多态类型的列表,存在一个问题。例如:Car和Bus都具有相同的超类Vehicle,并且列表包含Vehicle对象。 如果delNode是一辆汽车,B是一辆公共汽车,那么将B状态复制到delNode的想法是错误的!这些对象具有不同的具体类型,因此此解决方案不适用于这种情况
C++实现-别忘了删除(B)是的,这是正确的,通常是这样做的为什么不画框,用线表示链接,看看你在纸上是怎么做的?“在我在这里提交代码之前,我想知道…”。。。。这可能是你可以在聊天室里问的问题。您的代码或概念是否有特殊问题?如何找到给定节点的前一个节点?