Leetcode 83 刪除排序鏈表中的重複元素 C語言

2020-08-10 17:56:32

Leetcode 83 刪除排序鏈表中的重複元素 C語言

給定一個排序鏈表,刪除所有重複的元素,使得每個元素只出現一次。

範例 1:

輸入: 1->1->2
輸出: 1->2
範例 2:

輸入: 1->1->2->3->3
輸出: 1->2->3

思路:遍歷鏈表 找到相等就指向下一個 否則繼續找

struct ListNode* deleteDuplicates(struct ListNode* head){
    if(head == NULL) 
      return NULL;
	struct ListNode *p = head;
	while(p ->next != NULL){
		if(p -> val == p ->next -> val){
			p -> next = p -> next -> next;
		}
		else{
			p = p -> next;
		}
	}
	return head;
}