[容易]删除排序链表中的重复元素

题目来源:http://www.lintcode.com/zh-cn/problem/remove-duplicates-from-sorted-list/

第一次编译没有通过,是用了.,对象的指针调用对象的变量只能用->,而且temp->next依然是个指针
第二次编译没有通过,是没有判断head是否为null,如果head为null,直接返回null

 1 /*
 2  * Definition of ListNode
 3  * class ListNode {
 4  * public:
 5  *     int val;
 6  *     ListNode *next;
 7  *     ListNode(int val) {
 8  *         this->val = val;
 9  *         this->next = NULL;
10  *     }
11  * }
12  */
13 class Solution {
14 public:
15     /**
16      * @param head: The first node of linked list.
17      * @return: head node
18      */
19     ListNode *deleteDuplicates(ListNode *head) {
20         // write your code here
21         // ListNode dummy;//定义一个ListNode对象dummy
22         // dummy.next=head;//注意head是个对象指针,指向第一个节点,它不是对象,不能直接赋值给dummy
23         // ListNode *temp=&dummy;//把ListNode对象dummy的地址给temp,temp是一个对象指针
24         ListNode *temp=head;//temp是个指针,需要用->,对象对它自己的内容才能用.,temp->next的值是下个节点的地址
25         if(head==NULL)
26             return NULL;
27         while(temp->next!=NULL)
28         {
29             if (temp->next->val==temp->val)
30                 temp->next=temp->next->next;
31             else
32                 temp=temp->next;
33         }
34         return head;
35     }
36 };
posted @ 2016-04-19 14:55  Pearl_zju  阅读(261)  评论(0编辑  收藏  举报