/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */
struct ListNode* deleteDuplicates(struct ListNode* head ) 
{  
      struct ListNode* p = head;
      if(head ==  NULL || head == NULL)
         return head;
      while(p->next != NULL)  //最后一个结点前
      {
         if(p->val == p->next->val)   //相邻两值相等
         {
             p->next = p->next->next;  //删掉后值,指针后移
         }
         else 
             p = p->next;  //相邻两值不等,指针后移
       }
     return head;  
   }