《LeetCode之每日一题》:98.删除排序链表中的重复元素
Posted 是七喜呀!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《LeetCode之每日一题》:98.删除排序链表中的重复元素相关的知识,希望对你有一定的参考价值。
题目链接: 删除排序链表中的重复元素
有关题目
存在一个按升序排列的链表,给你这个链表的头节点 head ,
请你删除所有重复的元素,使每个元素 只出现一次 。
返回同样按升序排列的结果链表。
提示:
链表中节点数目在范围 [0, 300] 内
-100 <= Node.val <= 100
题目数据保证链表已经按升序排列
题解
方法一:一次遍历
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* deleteDuplicates(struct ListNode* head){
if (!head) return NULL;//特判
struct ListNode* cur = head;//当前节点
while(cur->next)
{
if (cur->val == cur->next->val)
{
struct ListNode *del_temp = cur->next; //如果不删除会造成内存泄露
cur->next = cur->next->next;
free(del_temp);
}
else
cur = cur->next;
}
return head;//返回头节点
}
以上是关于《LeetCode之每日一题》:98.删除排序链表中的重复元素的主要内容,如果未能解决你的问题,请参考以下文章
《LeetCode之每日一题》:288.删除排序链表中的重复元素
《LeetCode之每日一题》:99.删除排序链表中的重复元素 II
leetcode 每日一题 83. 删除排序链表中的重复元素