LeetCode 73 删除有序链表中的重复元素

LeetCode 73 删除有序链表中的重复元素

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

执行用时:1 ms, 在所有 Java 提交中击败了74.13%的用户
内存消耗:39.5 MB, 在所有 Java 提交中击败了46.17%的用户

class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        //边界情况
        if(head==null || head.next==null) return head;

        //双指针
        ListNode p1 = head, p2=head.next;
        while(p2!=null) {
            /*双指针移动*/
            if(p1.val!=p2.val) {
                p1.next = p2;
                p1 = p1.next;
                p2 = p2.next;
            }
            else if(p1.val==p2.val) {
                p2 = p2.next;
            }
            
            /*链表最后一段全部为重复*/
            if(p2==null) {
                p1.next = p2;
            }
        }
        //返回值
        return head;
    }
}
posted @ 2020-09-08 09:18  CodeSPA  阅读(169)  评论(0编辑  收藏  举报