算法打卡Day7_leetcode _ 83. 删除排序链表中的重复元素

简介: 算法打卡Day7_leetcode _ 83. 删除排序链表中的重复元素

Leetcode原题

83.删除排序链表中的重复元素

20200401134307494.png

思路

这题,看题目以后,其实理解起来还挺简单的。因为它本身是有序的链表结构,要求去除重复的数字。我们只需要判断当前节点的val值和下一节点的val值是否相等。若相等,则跳过下一节点。将当前节点的next指向 它下一个节点的下一个节点就好了。如不相等,则当前节点指向下一节点。

方法一 、迭代删除

public ListNode deleteDuplicates(ListNode head) {
        ListNode p=head;
        if (p==null)return head;
        while ( p.next!=null){
             if (p.val == p.next.val){ //当前节点值等于下一个节点值,则直接跳过下一节点
                 p.next =p.next.next;
             }else {
                 p= p.next;
             }
        }
        return head;
    }

方法二 递归(参考官网)

20200401134307494.png

    public ListNode deleteDuplicates(ListNode head) {
        if (head==null || head.next ==null )return head;
        head.next =deleteDuplicates(head.next);
      return head.val == head.next.val ? head.next: head;
    }

有兴趣的老爷,还可以关注我的公众号【一起收破烂】,回复【006】获取 最新java面试资料以及简历模型120套哦~


相关文章
|
3月前
【力扣】-- 移除链表元素
【力扣】-- 移除链表元素
47 1
|
3月前
Leetcode第21题(合并两个有序链表)
这篇文章介绍了如何使用非递归和递归方法解决LeetCode第21题,即合并两个有序链表的问题。
60 0
Leetcode第21题(合并两个有序链表)
|
3月前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
74 3
|
2月前
|
存储 算法 Java
leetcode算法题-有效的括号(简单)
【11月更文挑战第5天】本文介绍了 LeetCode 上“有效的括号”这道题的解法。题目要求判断一个只包含括号字符的字符串是否有效。有效字符串需满足左括号必须用相同类型的右括号闭合,并且左括号必须以正确的顺序闭合。解题思路是使用栈数据结构,遍历字符串时将左括号压入栈中,遇到右括号时检查栈顶元素是否匹配。最后根据栈是否为空来判断字符串中的括号是否有效。示例代码包括 Python 和 Java 版本。
|
3月前
|
存储 算法 Java
Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性
Java Set因其“无重复”特性在集合框架中独树一帜。本文解析了Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性,并提供了最佳实践建议,包括选择合适的Set实现类和正确实现自定义对象的hashCode()与equals()方法。
63 4
|
3月前
|
算法
每日一道算法题(Leetcode 20)
每日一道算法题(Leetcode 20)
41 2
|
3月前
LeetCode第二十四题(两两交换链表中的节点)
这篇文章介绍了LeetCode第24题的解法,即如何通过使用三个指针(preNode, curNode, curNextNode)来两两交换链表中的节点,并提供了详细的代码实现。
34 0
LeetCode第二十四题(两两交换链表中的节点)
|
3月前
Leetcode第十九题(删除链表的倒数第N个节点)
LeetCode第19题要求删除链表的倒数第N个节点,可以通过快慢指针法在一次遍历中实现。
50 0
Leetcode第十九题(删除链表的倒数第N个节点)
|
3月前
|
索引
力扣(LeetCode)数据结构练习题(3)------链表
力扣(LeetCode)数据结构练习题(3)------链表
112 0
|
4月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行