标签:break return 一个 重复 指针 第一个 解题思路 ica 头结点
class Solution { public: ListNode* deleteDuplication(ListNode* pHead) { ListNode *preNode, *nowNode, *nextNode; preNode = pHead; nowNode = pHead; nextNode = NULL; while(nowNode != NULL){ nextNode = nowNode->next; if(nextNode != NULL){ if(nextNode->val == nowNode->val){ while(nextNode != NULL && nextNode->val == nowNode->val){ nextNode = nextNode->next; } if(preNode == nowNode){ //头结点需要改变 pHead = nextNode; preNode = nextNode; nowNode = nextNode; }else{ //删掉中间的重复节点 preNode->next = nextNode; nowNode = nextNode; } }else{ //移动preNode节点到当前节点,nowNode节点指向下一个和当前节点值不同的节点 if(nowNode != preNode){ preNode = nowNode; nowNode = nextNode; }else{ //当前节点指向下一个和当前节点值不同的节点 nowNode = nextNode; } } }else{ break; } } return pHead; } };
标签:break return 一个 重复 指针 第一个 解题思路 ica 头结点
原文地址:https://www.cnblogs.com/chengsheng/p/10697822.html