有序链表删除重复元素_Vanilla_Chi的博客-程序员宅基地

技术标签: 链表  数据结构与算法  

从有序链表中删除重复元素,每种剩下一个。1->1->2->2->3->4->4;===>1->2->3->4
两个游标p,q走。p为标杆值,若q的值等于p时,p继续走,不等于时,就将p的下一个置为q。

public ListNode deleteDuplicates(ListNode head){
    if(head != null){
        ListNode p = head, q = head;
        for( ; q != null;q = q.next){
            if(p.val != q.val){
                p.next = q;
                p = q;
            }
        }
        p.next = null; //结尾,容易遗忘
    }
    return head;
}

相关题目:从有序数组中去除重复元素

public int removeDuplicates(int[] A){
    if(A == null || A.length == 0) return 0;
    int p = 0, q = 0;
    for(; q < A.length; q++)
        if(A[p] != A[q]) A[++p] = A[q];
    return p+1;
}

从有序链表中删除重复元素,若有重复全部删除。1->1->2->2->3->4->4;===>3
不同点在于要保留一个前指针,删除前指针到q中间的所有元素。判断标杆值与q值不等时要考虑q是否是p的下一个节点。

public ListNode deleteDuplicates(ListNode head) {
    if(head != null){
        ListNode p = head, q = head,pre = null;
        for( ; q != null; q = q.next){
            if(p.val != q.val){
                if(p.next != q){
                    p = q;
                    if(pre == null) head = p;
                    else pre.next = q;
                }else{
                    pre = p;
                    p = q;
                }

            }
        }
        if(p.next != q){
            if(pre == null) head = null; 
            else pre.next = q;
        }//结尾,容易错!!!!
    }
    return head;
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/vanilla_chi/article/details/44560149

智能推荐

Python学习笔记【第一篇】:认识python和基础知识-程序员宅基地

我的笔记里的python代码运行环境都是在pycharm软件中运行,所以不去记录如何配置环境变量呀什么的。python种类  Cpython:     Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。  Jpython:     Python的Java实现,Jy...

openSUSE 管理无线网络(networkManager/wicked/iwconfig)_no wireless extensions-程序员宅基地

1、列出无线网络接口和无线信息iwconfig#主要显示无线网络接口为wlp3s0,及其支持的信息,或已连接的信息hybian@linux-jsrn:/> /usr/sbin/iwconfigwlp3s0 IEEE 802.11 ESSID:"My_Girl*Love*_1031" Mode:Managed Frequency:5.765 GHz Acces_no wireless extensions

python处理字符串 从入门到精通仅此一文足够了_python 字符串代码运行_行走在云端z的博客-程序员宅基地

python处理字符串 从入门到精通仅此一文足够了_python 字符串代码运行

我对“硬盘分区”的愚见-程序员宅基地

注:本文算得上是我第一份真正意义上的博客了……转摘注明作者出处…… 我对“硬盘分区”的愚见   从2009年Windows 7正式发布之后,我便想落笔把下面的大多数心得体会写下来。但因为太懒,也没打算写得多完善,就没有怎么动笔,只是每次向朋友讲到这个问题,便把说话的记下来那么一两段,这样断断续续就记得很零散,转眼2011年了,趁机整理了一下,发现篇幅还是真的比较想像中的长多了。 1.我对“分区”的认识经历

MyBatis常见的概念性面试题汇总_mybatis中对复杂数据映射到一个结果集的配置使用的标签是-程序员宅基地

@MyBatis概念性面试题整理MyBatis常见的概念性面试题一、概念性填空题1、#{}和$ {}的区别是什么?#{}是_____,${}是_____。2、四个核心接口是()用于执行CRUD操作、()处理SQL的参数、()处理返回结果集、()用于执行SQL语句。3、MyBatis中提供了一级缓存和二级缓存,其中()默认存在,不可控制,同一SqlSession范围内的操作共享该缓存,增、..._mybatis中对复杂数据映射到一个结果集的配置使用的标签是

DB2 多行记录合并_db2多行合并-程序员宅基地

前提是DB2数据库支持XML。SELECT T.VIN, VARCHAR(REPLACE(REPLACE(XML2CLOB(XMLAGG(XMLELEMENT(NAME A, T.WARN_ITEM_NO || '=' ||_db2多行合并

随便推点

linux 安装ftp添加用户设置权限-程序员宅基地

1.检查服务器是否安装ftpwhich vsftpd是否开启service vsftpd status1.安装FTPyum -y install vsftpd2.新建用户,并指定主目录useradd -d /home/test -m test  (增加用户test,并制定test用户的主目录为/home/test)3.设置新用户密码passwd test          (为test设置密码)4...

php函数symlink详解-程序员宅基地

php函数symlink详解建立符号链接 (symbolic link),类似于Windows里头常用的.lnk快捷方式symlink语法: int symlink(string target, string link);symlink返回值: 整数函数种类: 文件存取symlink内容说明本函数可用来建立符号链接。从参数 target 链接到 ...

Spark 调优之ShuffleManager、Shuffle-程序员宅基地

Shuffle 概述影响Spark性能的大BOSS就是shuffle,因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。因此,如果要让作业的性能更上一层楼,就有必要对 shuffle 过程进行调优。当然,影响 Spark 性能的还有代码开发、参数设置数以及数据倾斜的解决等,甚至这部分才是大头,shuffle 调优只能在整个 Spark 的性能调优中占到一小部分而已。所以写好一个优...

酒泉职业技术学院计算机专业好吗,酒泉职业技术学院怎么样 评价排名好不好(10条)..._马德阿姨的博客-程序员宅基地

专题内容1、不上这学校会是你今生最正确的决定,酒泉职业技术学院是一个只会做假,学校为了门面可以随意的处理任何一个学生,甚至让你死,真的是很可怕的,我希望在上的还有那些正准备上的同学都好好的考虑一下自己的去向,不然到时候自己是怎么死的都不知道那就惨了,我在呼吁啊同学们,请爱惜自己的生命吧!2、我就是酒泉职业技术学院毕业的。宿舍都是住六个人的宿舍。电视史有的,而且在09年就拉上了有线电视,但是网线是没..._酒泉职业技术学院计算机类专业

设置蓝牙名称,动态修改名称-程序员宅基地

原文蓝牙名称是指主机扫描时,从机推送给主机的那一串字符。蓝牙名称便于主机建立连接。蓝牙名称设置函数:GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData ); 1. 在数组scanRspData[ ]里,存放的就是蓝牙名称,可以自己设置。1.1直接在数组中修改

leetCode 51. N-Queens | 回溯问题(N皇后问题) | hard-程序员宅基地

51. N-QueensThen-queens puzzle is the problem of placingnqueens on ann×nchessboard such that no two queens attack each other.Given an integern, return all distinct solut...