博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指Offer——删除链表中重复的结点
阅读量:4577 次
发布时间:2019-06-08

本文共 1057 字,大约阅读时间需要 3 分钟。

Question

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

Solution

  • 链表的题目一般都会考虑用一个额外的节点,因为第一个节点可能重复了,那么会被删除,重复的节点需要全部删除,那么需要设置一个先前节点的指针。然后把思路理清楚,就可以得到正确答案了。

Code

/*struct ListNode {    int val;    struct ListNode *next;    ListNode(int x) :        val(x), next(NULL) {    }};*/class Solution {public:    ListNode* deleteDuplication(ListNode* pHead) {        if (pHead == NULL)            return pHead;                ListNode* first = new ListNode(-1);        first->next = pHead;                ListNode* pre = first;        while (pHead) {            ListNode* tmp = pHead;            while (tmp->next != NULL && tmp->val == tmp->next->val)                tmp = tmp->next;            if (tmp == pHead) {                pre = pHead;                pHead = pHead->next;            }            if (tmp != pHead && tmp != NULL) {                pre->next = tmp->next;                pHead = pre->next;            }        }                return first->next;    }};

转载于:https://www.cnblogs.com/zhonghuasong/p/7100621.html

你可能感兴趣的文章
source insight 不能添加cc文件
查看>>
NYOJ 16 矩形嵌套
查看>>
Leetcode中的SQL题目练习(二)
查看>>
dubbo 集群容错源码
查看>>
Collection接口的子接口——Queue接口
查看>>
LINUX安装NGINX
查看>>
服务器启动项目抛错 没有到主机的路由
查看>>
python_85_sys模块
查看>>
第九周动手动脑
查看>>
HDU 1811 Rank of Tetris
查看>>
网站UI分析
查看>>
winform 获取当前名称
查看>>
报表分栏后的排序
查看>>
Django中models定义的choices字典使用get_FooName_display()在页面中显示值
查看>>
nohup命令详解(转)
查看>>
别人的Linux私房菜(1)计算机概论
查看>>
系统编程之文件操作
查看>>
ModelState.IsValid
查看>>
React-Native 环境部署
查看>>
0x27 A*
查看>>