删除顺序链表中重复的数 (一) leecode

Given a sorted linked list, delete all duplicates such that each element appear only once.

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

 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         
15         if(head==null) return head;
16         if(head.next==null) return head;
17     
18         ListNode pre=head;//save the pre to delete
19         ListNode cur=head.next;
20         while(cur!=null)
21         {
22             if(cur.val==pre.val)
23             {
24             
25                 pre.next=cur.next;//删除cur节点
26                 cur=cur.next; //处理下一个节点
27                                  
28                 
29             }
30             else
31             {
32                 pre=pre.next;
33                 cur=cur.next;
34                 
35             }
36             
37             
38         }
39         
40         return head;
41         
42         
43     }
44 }

 

 

 

posted @ 2014-07-02 23:17  hansongjiang8  阅读(216)  评论(0编辑  收藏  举报