Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given 1->1->2
, return 1->2
.
Given 1->1->2->3->3
, return 1->2->3
.
https://oj.leetcode.com/problems/remove-duplicates-from-sorted-list/
思路:基本的链表操作,保存pre的指针,cur与pre相同就删除cur。
public class Solution { public ListNode deleteDuplicates(ListNode head) { if (head == null || head.next == null) return head; ListNode pre = head; ListNode cur = head.next; while (cur != null) { if (cur.val == pre.val) { pre.next = cur.next; cur = pre.next; } else { pre = cur; cur = cur.next; } } return head; } public static void main(String[] args) { ListNode head = new ListNode(1); head.next = new ListNode(1); head.next.next = new ListNode(2); ListUtils.printList(head); new Solution().deleteDuplicates(head); ListUtils.printList(head); } }