Remove Duplicates from Sorted List II
2016-12-05 19:30
260 查看
Description:
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.问题描述:
给一条已经排好序的链表,删除所有重复结点,只保留在链表中出现过一次的结点。Ex:
Given1->2->3->3->4->4->5, return
1->2->5
Given
1->1->1->2->3, return
2->3
解法一:
思路:
与之前的remove duplicate题目不同,这次要把重复元素删除,原始副本也不留。之前是保留一份副本,直接把后面的重复元素跳过(删除)。这个问题思路差不多,用两个结点prev 用来记录当前处理元素的上一个元素,curr 用来记录当前在处理的元素。当捕捉到重复元素,curr就比正常情况下多走一步,并且把curr后面的元素接到prev上来。如果没有出现重复的元素,prev就要紧跟curr的步伐,但是还是比curr慢一步。最后处理完返回dummy.nextCode:
/** * 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) { if(head == null) return null; ListNode dummy = new ListNode(0); dummy.next = head; ListNode prev = dummy; ListNode curr = head; while(curr != null){ while(curr.next != null && curr.val == curr.next.val){ curr = curr.next; } if(prev.next == curr){ prev = prev.next; } else{ prev.next = curr.next; } curr = curr.next; } return dummy.next; } }
相关文章推荐
- 【Leetcode】Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- [leetcode刷题系列]Remove Duplicates from Sorted List II
- LeetCode_Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted ListII 有序链表去重II D3F3
- [leetcode]Remove Duplicates from Sorted List II
- [leetcode] Remove Duplicates from Sorted List II
- LeetCode: Remove Duplicates from Sorted List II
- [LeetCode] Remove Duplicates from Sorted List II 链表
- [leetcode][list] Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- [LeetCode] Remove Duplicates from Sorted List II 移除有序链表中的重复项之二
- Remove Duplicates from Sorted List II
- LeetCode Remove Duplicates from Sorted List II
- LeetCode Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List I & II
- leetcode:单链表之Remove Duplicates from Sorted List II
- leetcode之Remove Duplicates from Sorted List II
- leetcode JAVA Remove Duplicates from Sorted List II 难度系数3 3.29