博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] 82 Remove Duplicates from Sorted List II
阅读量:4984 次
发布时间:2019-06-12

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

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

For example,

Given 1->2->3->3->4->4->5, return 1->2->5.
Given 1->1->1->2->3, return 2->3.

解题思路:

新建一个辅助表头,使用两个指针pre,p;

开始循环判断

1. pre->next=p->next,说明有相同的元素,则p=p->next;知道p->next为空或者发现新的元素;

2.判断 p->next!=p ,如果有相同元素的则p必然会向后移动,那么判断成立,pre->next=p->next,连接新的元素;

3.p未发生移动,则pre=pre->next,加入这个元素

代码:

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode *deleteDuplicates(ListNode *head) {        if(head==NULL)return NULL;        //if(head->next==NULL)return head;        ListNode *newlist=new ListNode(0);        newlist->next=head;        ListNode *pre=newlist;        ListNode *p=head;        while(p!=NULL)        {            while(p->next!=NULL&&pre->next->val==p->next->val)                p=p->next;            if(pre->next==p)    //未发生移动                pre=pre->next;            else                        //发生移动 要去除            {                pre->next=p->next;            }            p=p->next;            //pre=pre->next;        }            return newlist->next;    }};

转载于:https://www.cnblogs.com/aorora/p/4329564.html

你可能感兴趣的文章
路由器/交换机/集线器的区别收集(转)
查看>>
今日头条面试题汇总
查看>>
hdu 1305 Immediate Decodability
查看>>
基本数据类型
查看>>
laravel 配置sql日志
查看>>
基于注意力机制的群组推荐算法
查看>>
Android: 创建一个AlertDialog对话框,必须按确定或取消按钮才能关闭对话框,禁止按[返回键]或[搜索键]关闭...
查看>>
linux更改shell
查看>>
win7 64位系统 pl/sql 无法解析指定的连接标识符解决办法
查看>>
linux -- RPM 和 YUM
查看>>
给列表单元格加背景色
查看>>
knockoutjs 静动态数据、行为绑定,计算属性及Sync同步更新 Value值更新事件控制...
查看>>
关于.NET编程中各种事务的实现
查看>>
spring Boot加载bean
查看>>
学习笔记 UpdateXml() MYSQL显错注入
查看>>
51nod1455(dp)
查看>>
正则:校验名字,不严格校验手机号
查看>>
软件测试作业二 —— 对于Faults,Errors,Failures的认识的习题
查看>>
.net 给前台元素设置样式
查看>>
WPF学习:控件的模板
查看>>