剑指offer 66题 -- 删除链表中重复的节点
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};
*/
class Solution {
public:
ListNode* deleteDuplication(ListNode* pHead)
{
//變量定義區
ListNode* pNode = pHead;
int val =0;
ListNode* pResult = new ListNode(val);
if(pResult == NULL)
return NULL;
pResult->next = pHead;
ListNode* pPrevious = pResult;
pPrevious->next = pHead;
//入參有效性檢查
if(pHead == NULL )
return pHead;
while(pNode != NULL && pNode->next != NULL)
{
if(pNode->next->val == pNode->val)
{
val = pNode->val;
while(pNode != NULL && (pNode->val == val) )
{
ListNode* tmp = pNode;
pNode = pNode->next;
delete tmp;
}
pPrevious->next = pNode;
}
else
{
pPrevious = pPrevious->next;
pNode = pNode->next;
}
}
return pResult->next;
}
};
轉載于:https://www.cnblogs.com/shewell/p/6457904.html
總結
以上是生活随笔為你收集整理的剑指offer 66题 -- 删除链表中重复的节点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: How do I get the low
- 下一篇: java自动猜测文件编码