首页 > 其他 > 详细

[Leetcode]-- Remove Duplicates from Sorted List II

时间:2014-02-08 09:11:12      阅读:333      评论:0      收藏:0      [点我收藏+]

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

For example,
Given 1->2->3->3->4->4->5, return 1->2->5.
Given 1->1->1->2->3, return 2->3.

参考:http://www.cnblogs.com/feiling/p/3259474.html

bubuko.com,布布扣
 1 /**
 2  * Definition for singly-linked list.
 3  * public class ListNode {
 4  *     int val;
 5  *     ListNode next;
 6  *     ListNode(int x) {
 7  *         val = x;
 8  *         next = null;
 9  *     }
10  * }
11  */
12 public class Solution {
13     public ListNode deleteDuplicates(ListNode head) {
14        if(head == null){
15         return head;
16        }
17        //在头结点之前添加safeguard,防止处理一开始就是连续节点的情况
18        ListNode safe = new ListNode(Integer.MIN_VALUE);
19        safe.next =head;
20        head = safe;
21        
22        ListNode pre = head, cur = head.next;
23        while(cur != null){
24            boolean flag = false;
25            while(cur != null && cur.next != null){
26                if(cur.val == cur.next.val){
27                    cur.next = cur.next.next;
28                    flag = true;
29                }else{
30                    break;
31                }
32            }
33            //处理剩余的一个重复节点
34            if(flag){
35                pre.next = cur.next;
36                cur = pre.next;
37                continue;
38            }
39            
40            pre = cur;
41            cur = cur.next;
42        }
43        
44        return head.next;
45     }
46 }
View Code

[Leetcode]-- Remove Duplicates from Sorted List II

原文:http://www.cnblogs.com/RazerLu/p/3540021.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!