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

    xiaoxiao2022-06-30  150

    题目

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

    示例 1:

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

    示例 2:

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

    思路

    排序链表,只需要判断当前节点的值和前一个节点的值是否相同即可。需要两个指针,一个指向当前节点,另一个指向当前节点的上一个节点。如果相同,则删除当前节点。

    代码

    /** * 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 head; ListNode t = head.next,s=head; while(t != null){ if(t.val == s.val){ s.next = t.next; t = t.next; } else{ s = s.next; t = t.next; } } return head; } }

    最新回复(0)