• LeetCode:删除排序链表中的重复元素【83】


    LeetCode:删除排序链表中的重复元素【83】

    题目描述

    给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。

    示例 1:

    输入: 1->1->2
    输出: 1->2
    

    示例 2:

    输入: 1->1->2->3->3
    输出: 1->2->3

    题目分析

      这道题是链表中的双指针问题,常规思路是定义两个指针,一个slow,一个fast,首先题目已经说明是排序数组,所以所有重复元素都是挨着的,这样子的话我们就要考虑删除多个元素的问题

      

    Java题解

    /**
     * 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;
        }
    }
    
  • 相关阅读:
    Linux 技巧
    设计模式大集合
    [Java] Design Pattern:Code Shape
    [Java] 设计模式: Code Shape
    BookNote: Refactoring
    读书笔记: 博弈论导论
    读书笔记: 博弈论导论
    读书笔记: 博弈论导论
    读书笔记: 博弈论导论
    读书笔记: 博弈论导论
  • 原文地址:https://www.cnblogs.com/MrSaver/p/9582967.html
Copyright © 2020-2023  润新知