C++单链表中删除指定范围内的元素
2017-10-22 20:10
288 查看
//删除指定范围内的所有元素 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++ vector 删除一个指定元素 和 find 一个指定元素
- 删除链表中指定的所有元素
- [C++]Remove Linked List Elements 删除链表中的元素
- leetcode之92. Reverse Linked List II(C++读错题版本,交换一个链表中指定的两个位置上的元素)
- C++,输入一组数字,并对其升序排序,删除指定范围内的元素