leetcode-83-Remove Duplicates from Sorted List
阿新 • • 發佈:2018-04-06
節點 sort listnode 內存 sorted val 內存空間 spa appear
題目描述:
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
.
要完成的函數:
struct ListNode
{
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* deleteDuplicates(ListNode* head)
說明:
這道題目不難,考察的是對於指針的簡單操作。要註意的點如下:
1、head指針指的是第一個節點指針。這個指針有可能為NULL,沒有指向任何內存空間,因此談不上有val和next。也有可能指向一個ListNode的變量空間,有val和next的。
2、註意要釋放重復的節點空間,不然會造成內存泄漏.
代碼:
ListNode* deleteDuplicates(ListNode* head)
{
ListNode* t1=head,*t2;
if(head==NULL)//空指針特殊處理
return head;
while(t1->next!=NULL)//當下一個節點仍然有val的時候繼續處理
{
t2 =t1->next;
if(t2->val==t1->val)
{
t1->next=t2->next;
delete t2;
}
else
t1=t2;
}
return head;
}
leetcode-83-Remove Duplicates from Sorted List