| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 【LeetCode-简单】83. 删除排序链表中的重复元素(详解) -> 正文阅读 |
|
[数据结构与算法]【LeetCode-简单】83. 删除排序链表中的重复元素(详解) |
题目给定一个已排序的链表的头? 题目地址:https://leetcode.cn/problems/remove-duplicates-from-sorted-list/ 示例方法1:双指针作者:本人 思路 与前面做过的一道题一样,上次是 删除数组中的相同元素,这次是删除链表中的相同元素,思路是一样的。 【LeetCode-简单】26. 删除有序数组中的重复项(详解) 考虑用 2 个指针,一个在前记作 fast,一个在后记作 slow,算法流程如下: 1.比较 fast?和 slow?位置的元素是否相等。 如果相等,fast?后移 1 位 特殊情况:slow 和 fast 到后期一直相同 例如: 1 2 3 3 3 3 这种情况我们的回返回“1 2 3 3 3 3”而不是“1 2 3”,所以多做一个判断即可
未优化版本代码?
代码优化 果然还是要看一下被人的代码,才能成长 我的那个特殊情况的处理非常的傻,还不如直接在结尾处 让 slow.next = null ,无论如何,都是这样,所以不用加那个特殊情况的判断,在最后 给slow的尾巴切一刀即可。
?
方法2:直接遍历作者:力扣官方 由于给定的链表是排好序的,因此重复的元素在链表中出现的位置是连续的,因此我们只需要对链表进行一次遍历,就可以删除重复的元素。 具体地,我们从指针 cur 指向链表的头节点,随后开始对链表进行遍历。如果当前 cur 与 cur.next 对应的元素相同,那么我们就将 cur.next 从链表中移除;否则说明链表中已经不存在其它与 cur 对应的元素相同的节点,因此可以将cur 指向 cur.next。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 2:03:48- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |