leetcode之Remove Duplicates from Sorted List II
2015-04-21 14:44
465 查看
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,
Given
Given
这道题比上一道题难度大很多,首先,好多情况都要考虑
因为是要删除链表中的重复元素,所以要分好多种情况,如果整个链表的元素相同?如果头结点和第二个元素相同?如果最后两个元素相同?
这道题自己没想起来,看剑指offer上面试题57才有了大致的思路,定义一个指向head的结点可以省好多事
另外,定义了一个布尔变量,如果值相同,就代表应该删除,这里很巧妙的如果布尔值为true那么我继续指向下一个元素,否则两个指针都向前推进。
下面附上代码:
稍后再看看剑指offer上的源码。
For example,
Given
1->2->3->3->4->4->5, return
1->2->5.
Given
1->1->1->2->3, return
2->3.
这道题比上一道题难度大很多,首先,好多情况都要考虑
因为是要删除链表中的重复元素,所以要分好多种情况,如果整个链表的元素相同?如果头结点和第二个元素相同?如果最后两个元素相同?
这道题自己没想起来,看剑指offer上面试题57才有了大致的思路,定义一个指向head的结点可以省好多事
另外,定义了一个布尔变量,如果值相同,就代表应该删除,这里很巧妙的如果布尔值为true那么我继续指向下一个元素,否则两个指针都向前推进。
下面附上代码:
public ListNode deleteDuplicates(ListNode head) { if(head == null || head.next == null) return head; ListNode newHead = new ListNode(-1); newHead.next = head; ListNode p1 = newHead; ListNode p2 = head; while(p2!=null){ boolean dup = false; while(p2.next!=null && p2.val == p2.next.val){ dup = true; p2 = p2.next; } if(dup){ p2 = p2.next; continue; } p1.next = p2; p1 = p1.next; p2 = p2.next; } p1.next = p2; return newHead.next; }
稍后再看看剑指offer上的源码。
相关文章推荐
- 【leetcode c++】82 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】Remove Duplicates from Sorted List II-很精简
- LeetCode---(82) Remove Duplicates from Sorted List II
- [leetcode] Remove Duplicates from Sorted List II
- [LeetCode] Remove Duplicates from Sorted List II
- [C++]LeetCode: 6 Remove Duplicates from Sorted List II
- 【LeetCode】Remove Duplicates from Sorted List II
- [Leetcode] Remove duplicate from sorted list ii 从已排序的链表中删除重复结点
- [LeetCode] Remove Duplicates from Sorted List II
- leetcode_c++:链表:Remove Duplicates from Sorted List II(082)
- leetcode 081 —— 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 Java
- leetcode Remove Duplicates from Sorted List II
- Leetcode: Remove Duplicates from Sorted List II
- LeetCode | Remove Duplicates from Sorted List II