C++单链表中删除指定范围内的元素
2017-10-22 20:10
302 查看
//删除指定范围内的所有元素 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++单链表中删除指定范围内的元素
- 【链表面试题】删除无头单链表的非尾节点,插入一个元素到无头链表指定位置
- [C++]Remove Linked List Elements 删除链表中的元素
- 删除链表中的元素 - C++
- 【链表面试题】删除无头单链表的非尾节点,插入一个元素到无头链表指定位置
- SDUT_OJ_1464-链表-删除指定元素