目录
题目
Given a sorted linked list, delete all duplicates such that each element appear only once.
Example:
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.
解决方案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode deleteDuplicates(ListNode head) { ListNode p = head; while(p != null && p.next != null){ if(p.val == p.next.val){ p.next = p.next.next; } else { p = p.next; } } return head; } }
|
注意事项
- 链表去重,使用一个p指针指向头结点,开始遍历该链表,如果当前元素和后一个元素值不同,指针后移一位;如果相同,则当前元素指向后一个元素之后的元素,也就是把相同的两个元素的后者删除掉。