博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode集锦(十九) - 第83题 Remove Duplicates from sorted list
阅读量:6487 次
发布时间:2019-06-23

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

问题

Given a sorted linked list, delete all duplicates such that each element appear only once.  Example 1: Input: 1->1->2Output: 1->2 Example 2: Input: 1->1->2->3->3Output: 1->2->3复制代码

翻译:

给定一个已排序的链表,删除所有重复项,使每个元素只出现一次。 示例1: 输入:1 - > 1 - > 2 输出:1 - > 2 示例2: 输入:1 - > 1 - > 2 - > 3 - > 3 输出:1 - > 2 - > 3


解题思路

本题思路很简单,由于链表是有序的,说明如果有重复的,肯定是下一个,按照顺序进行遍历,如果遇到当前节点和后一个节点相同,那么覆盖当前节点。遍历一次就搞定了

解题方法

  1. 按照我们的思路来编辑,代码如下

    public ListNode deleteDuplicates(ListNode head) {    if (head == null) {        return head;    }    ListNode temp = head;    while (head.next != null) {        if (head.val == head.next.val) {            head.next = head.next.next;            continue;        }        head = head.next;    }    return temp;}public class ListNode {    int val;    ListNode next;    ListNode(int x) {        val = x;    }}复制代码

    时间复杂度: 该方案用了循环m所以f(n)=(n)=n;所以O(f(n))=O(n),即T(n)=O(n)

    空间复杂度: 该方案使用了没有使用额外空间,所以空间复杂度是O(n)=O(1);

总结

本题的大致解法如上所诉,本题大致只有一种解题方式,直接遍历读取覆盖即可,我是通过当前节点和下一个节点进行比较,也可以和前一个节点进行比较 。

转载于:https://juejin.im/post/5cfa8a846fb9a07ea803bc61

你可能感兴趣的文章
阿里宣布开源Weex ,亿级应用匠心打造跨平台移动开发工具
查看>>
Android项目——实现时间线程源码
查看>>
招商银行信用卡重要通知:消费提醒服务调整,300元以下消费不再逐笔发送短信...
查看>>
js的AJAX请求有关知识总结
查看>>
三分 POJ 2420 A Star not a Tree?
查看>>
修改OBS为仅直播音频
查看>>
OCA读书笔记(3) - 使用DBCA创建Oracle数据库
查看>>
Python基础进阶之路(一)之运算符和输入输出
查看>>
ClickStat业务
查看>>
spring3.0.7中各个jar包的作用总结
查看>>
Windows 10 /win10 上使用GIT慢的问题,或者命令行反应慢的问题
查看>>
我的路上
查看>>
DB2与oracle有什么区别
查看>>
创建一个多级文件目录
查看>>
VuePress手把手一小時快速踩坑
查看>>
学习constructor和instanceof的区别
查看>>
Vijos P1881 闪烁的星星
查看>>
ABP理论学习之领域服务
查看>>
Qt 控制watchdog app hacking
查看>>
RDD之五:Key-Value型Transformation算子
查看>>