非递减单链表删除重复元素
2011-10-08 19:15
375 查看
typedef struct _MyListNode { int nData; struct _MyListNode * pNext; } MyListNode, *PMyListNode; class MyList { public: MyList() { pHead = new MyListNode(); pHead->nData = 0; pHead->pNext = NULL; pTail = NULL; } ~MyList() { MyListNode * pTmp = pHead; while (pTmp != NULL) { pHead = pTmp->pNext; delete pTmp; pTmp = pHead; } pHead = NULL; } void Append(int num) { MyListNode * pTmp = new MyListNode(); pTmp->nData = num; pTmp->pNext = NULL; if (pTail != NULL) { pTail->pNext = pTmp; } else { pHead->pNext = pTmp; } pTail = pTmp; } void Print() { MyListNode * pTmp = pHead->pNext; while (pTmp != NULL) { cout << pTmp->nData << " "; pTmp = pTmp->pNext; } cout << endl; } void RemoveRepeat() { MyListNode * pNode = pHead->pNext; while (pNode != NULL) { MyListNode * pTmp = pNode->pNext; while (pTmp != NULL && pNode->nData == pTmp->nData) { pNode->pNext = pTmp->pNext; delete pTmp; pTmp = pNode->pNext; } pNode = pTmp; } } private: MyListNode * pHead; MyListNode * pTail; }; int main() { MyList lst; lst.Append(7); lst.Append(10); lst.Append(10); lst.Append(21); lst.Append(30); lst.Append(42); lst.Append(42); lst.Append(42); lst.Append(51); lst.Append(70); lst.Print(); lst.RemoveRepeat(); lst.Print(); return 0; }
相关文章推荐
- 删除单链表中重复的元素
- 删除单链表中重复的元素
- 单链表中重复元素的删除
- 数据结构——链表之单链表重复元素的删除
- 删除单链表中的重复元素
- 删除单链表中重复的元素
- 删除单链表中重复的元素
- LeetCode.83. Remove Duplicates from Sorted List(删除单链表中的重复元素)
- 数据结构之 线性表---单链表的操作B(先逆序+再删除重复元素)
- 删除单链表中的重复元素
- 利用单链表删除重复元素
- 13.删除单链表中重复的元素
- 数据结构之 线性表---单链表的应用(重复元素删除)
- Java删除ArrayList中的重复元素的2种方法
- 有序链表删除重复元素
- 删除单链表指定元素
- 删除重复元素,集合
- 有两个数组a和b,把a出现在b中的元素删除,且a自己里面重复的元素也删除。
- 实现不用循环,删除集合中的重复(任意)元素
- 数据结构实验之链表七:单链表中重复元素的删除