LeetCode Remove Duplicates from Sorted List II
2015-09-02 12:25
344 查看
原题链接在这里:https://leetcode.com/problems/remove-duplicates-from-sorted-list-ii/
本题与Remove Duplicates from Sorted List相似,不同就是要完全去掉duplicate.
所以要维护一个前指针,
当cur.val == cur.next.val 时,就一直移动cur直到不同,然后pre的next指向cur.next即可。
当不同时就向后移动pre和cur。
Note: 1. 移动一段时间后,要注意cur.next == null的特殊情况,需特殊考虑。
2. 建立一个dummy head, 是为了简化需更改表头的例子。
AC Java:
本题与Remove Duplicates from Sorted List相似,不同就是要完全去掉duplicate.
所以要维护一个前指针,
当cur.val == cur.next.val 时,就一直移动cur直到不同,然后pre的next指向cur.next即可。
当不同时就向后移动pre和cur。
Note: 1. 移动一段时间后,要注意cur.next == null的特殊情况,需特殊考虑。
2. 建立一个dummy head, 是为了简化需更改表头的例子。
AC Java:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public ListNode deleteDuplicates(ListNode head) { if(head == null || head.next == null){ return head; } ListNode dummy = new ListNode(0); dummy.next = head; ListNode pre = dummy; ListNode cur = head; while(cur.next!=null){ if(cur.val == cur.next.val){ while(cur.next!=null && cur.val == cur.next.val){ cur = cur.next; } if(cur.next == null){ pre.next = null; }else{ //error pre.next = cur.next; cur = pre.next; } }else{ pre = pre.next; cur = cur.next; } } return dummy.next; } }
相关文章推荐
- JVM的GC(概念与深入)
- 微信开发验证代码
- 王石今年三提万科转型,每一次都跟机器人有关
- LeetCode Remove Duplicates from Sorted List II
- 项目中用到的git小版本号管理
- Qt事件处理(五)
- Qt事件处理(四)
- 树莓派 一些好资源
- hortonworks管理
- mysql 启动错误1026
- SET NAMES UTF8
- keep fighting
- OpenCV坐标体系介绍以及像素点at操作讲解
- zzuli OJ 1085: 求奇数的乘积(多实例测试)
- Qt事件处理(三)
- max_element和min_element的用法
- expdp和impdp导入导出工具的使用
- Qt事件处理(二)
- Qt事件处理(一)
- 希尔排序(K&RC)