LeetCode:删除排序链表中的重复元素【83】
LeetCode:删除排序链表中的重复元素【83】
题目描述
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:
输入: 1->1->2 输出: 1->2
示例 2:
输入: 1->1->2->3->3 输出: 1->2->3
题目分析
这道题是链表中的双指针问题,常规思路是定义两个指针,一个slow,一个fast,首先题目已经说明是排序数组,所以所有重复元素都是挨着的,这样子的话我们就要考虑删除多个元素的问题。
Java题解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode deleteDuplicates(ListNode head) { if (head== null ) return null ; ListNode slow = head; ListNode fast = head.next; while (fast!= null ) { while (fast!= null &&fast.val==slow.val) { fast=fast.next; } slow.next=fast; slow=slow.next; if (slow!= null ) fast=slow.next; } return head; } } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步