[LeetCode-83] Remove Duplicates from Sorted List

1069 ワード

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 .
【解析】整列チェーンテーブルの重複要素から削除
[LeetCode-26]Remove Duplicates from Sorted Array(配列重複要素の除去)
[LeetCode-80] Remove Duplicates from Sorted Array II
コードは次のとおりです.
/**
 * Definition for singly-linked list.
 **/
struct ListNode {
	int val;
	struct ListNode *next;
};
 
struct ListNode* deleteDuplicates(struct ListNode* head) 
{
    if(!head) {
		return NULL;
	}
	struct ListNode* headTemp = head;
	struct ListNode* freeListNodeTemp = NULL;
	int valueTempcur = 0;
	int valueTempnext = 0;
	while(headTemp) {
	
		while(headTemp->next&&headTemp->val==headTemp->next->val) {
			freeListNodeTemp = headTemp->next;
			headTemp->next = freeListNodeTemp->next;
			
			free(freeListNodeTemp);	
		}
		headTemp = headTemp->next;
	}
	return head;
}