前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >我们长的像是我们的错吗?

我们长的像是我们的错吗?

作者头像
公众号袁厨的算法小屋
发布2020-11-25 09:42:44
发布2020-11-25 09:42:44
30200
代码可运行
举报
运行总次数:0
代码可运行

来都来了点个关注呗

题目:删除链表中重复元素2

题目描述

给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中没有重复出现的数字。

示例 1:

代码语言:javascript
代码运行次数:0
运行
复制
输入: 1->2->3->3->4->4->5
输出: 1->2->5

示例 2:

代码语言:javascript
代码运行次数:0
运行
复制
输入: 1->1->1->2->3
输出: 2->3

注意这里会将重复的值全部删除,1,1,2,3最后只会保留2,3。

这道题目还是很简单的,更多的是考察大家的代码完整性,删除节点也是题库中的一类题目,我们可以可以通过这个题目举一反三。去完成其他删除阶段的题目。

链表的题目建议大家能有指针实现还是尽量用指针实现,很多链表题目都可以利用辅助空间实现,我们也可以用,学会了那种方法的同时应该再想一下可不可以利用指针来完成。下面我们来思考一下这个题目如何用指针实现吧!

双指针法:

做题思路:

这个题目也是利用我们的双指针思想,一个走在前面,一个在后面紧跟,前面的指针就好比是侦察兵,当发现重复节点时,后面指针停止移动,侦察兵继续移动,直到移动完重复节点,然后将该节点赋值给后节点。思路是不是很简单啊,那么我们来看一下动图模拟吧。

注:这里为了表达更直观,所以仅显示了该链表中存在的节点

代码语言:javascript
代码运行次数:0
运行
复制
class Solution {
    public ListNode deleteDuplicates(ListNode head) {
       //特殊情况
        if(head == null||head.next==null){
            return head;
        }
       //定义指针
        ListNode pre = head;
        ListNode low =new ListNode(0);
        low.next=pre;
        ListNode ret = new ListNode(-1);
        ret=low;
        //循环遍历
        while(pre!=null&&pre.next!=null){
           //发现重复元素
            if(pre.val == pre.next.val){
               //不断移动前指针,直到到达最后一个重复节点
                while(pre!=null&&pre.next!=null&&pre.val == pre.next.val){
                    System.out.println(pre.val);
                    pre=pre.next;
                }
               //再移动一下前指针,因为while语句是到达最后一个重复节点            
               //再移动一步到达新节点
                pre = pre.next;
                low.next = pre;                     
             }
             else{
                //不相同情况
                 pre=pre.next;
                 low=low.next;
             }
        }
     return ret.next;
    }
}

这个题目算是删除链表节点的经典题目了,大家记得打卡啊。

大家如果觉得这篇文章对大家有帮助的话,就请你将它转发给需要的人吧,顺便请大家点个关注在看吧,创作不易。你们的支持对我真的帮助很大,感谢各位支持!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 袁厨的算法小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 双指针法:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档