题目描述:
Given a sorted linked list, delete all duplicates such that each element appear only once.
Example 1:
Input: 1->1->2
Output: 1->2
Example 2:
Input: 1->1->2->3->3
Output: 1->2->3
题目解释:
给出一组排好序的链表,删除所有重复元素保证每个元素只出现一次。
题目解法:
1.我的解法。首先新建一个工作指针work;然后循环遍历整个链表,先判断下一个节点是否为空,当下一节点不为空且当前节点的值和下一个节点的值相同时,当前节点的下一节点指向下一节点的下一节点;否则工作指针后移。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode deleteDuplicates(ListNode head) {
ListNode work = head;
while(work != null){
ListNode temp = work.next;
if(temp != null && work.val == work.next.val) {
work.next = temp.next;
} else {
work = work.next;
}
}
return head;
}
}