删除链表中所有重复的结点
题目描述
解题思路:
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; */ class Solution { public: ListNode* deleteDuplication(ListNode* pHead) { if(pHead==NULL||pHead->next==NULL) return pHead; else { //新建一个节点,防止头结点要被删除 ListNode* newHead=new ListNode(0); newHead->next=pHead; ListNode* pre=newHead; ListNode* p=pHead; ListNode* next=NULL; while(p!=NULL && p->next!=NULL) { next=p->next; if(p->val==next->val)//如果当前节点的值和下一个节点的值相等 { while(next!=NULL && next->val==p->val)//向后重复查找 next=next->next; pre->next=next;//指针赋值,就相当于删除 p=next; } else//如果当前节点和下一个节点值不等,则向后移动一位 { pre=p; p=p->next; } } return newHead->next;//返回头结点的下一个节点 } } };
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算