给定一个排序链表,删除所有重复的元素每个元素只留下一个。
给出 1->1->2->null
,返回 1->2->null
给出 1->1->2->3->3->null
,返回 1->2->3->null
设置一个指针指向排序链表的头结点,遍历链表,若当前元素与下一个元素相同,直接将下一个元素的 next 指向下下个即可。
/**
* Definition for ListNode
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
/**
* @param ListNode head is the head of the linked list
* @return: ListNode head of linked list
*/
public static ListNode deleteDuplicates(ListNode head) {
if (head == null) {
return null;
}
ListNode node = head;
while (node.next != null) {
if (node.val == node.next.val) {
node.next = node.next.next;
}
else {
node = node.next;
}
}
return head;
}
}