C++单链表中删除指定范围内的元素
2017-10-22 20:10
253 查看
//删除指定范围内的所有元素 template<typename T> void chain<T>::removeRange(int fromIndex, int toIndex) { chainNode<T>*deleteNode; chainNode<T>*p = firstNode; if (fromIndex == 0) //方法复杂度O(toIndex-fromIndex+1) { //思想是如果首位是0号元素,则先删除0后面的元素,最后把0号元素删除 for (int i = 0; i < toIndex - fromIndex; i++) { deleteNode = p->next; p->next = p->next->next; delete deleteNode; listSize--; } deleteNode = firstNode; firstNode = firstNode->next; delete deleteNode; listSize--; } else //如果是非0开始,则先找到起始元素的前驱,再逐个删除 { for (int i = 0; i < fromIndex - 1;i++) p = p->next; for (int i = 0; i < toIndex - fromIndex + 1;i++) { deleteNode = p->next; p->next = p->next->next; delete deleteNode; listSize--; } } }
相关文章推荐
- C++单链表中删除指定范围内的元素
- C++单链表中删除指定范围内的元素
- C++单链表中删除指定范围内的元素
- C++单链表中删除指定范围内的元素
- C++单链表中删除指定范围内的元素
- C++单链表中删除指定范围内的元素
- C++单链表中删除指定范围内的元素
- C++单链表中删除指定范围内的元素
- C++单链表中删除指定范围内的元素
- C++单链表中删除指定范围内的元素
- C++单链表中删除指定范围内的元素
- C++单链表中删除指定范围内的元素
- C++单链表中删除指定范围内的元素
- C++单链表中删除指定范围内的元素
- C++单链表中删除指定范围内的元素
- Remove Linked List Elements 删除链表中指定元素
- 递归删除链表中的指定元素x
- 删除链表中指定的所有元素
- 【链表面试题】删除无头单链表的非尾节点,插入一个元素到无头链表指定位置
- [笔试题 7][c/c++]删除两个双向链表中相同元素的所有节点