/**
- Definition for singly-linked list.
- struct ListNode {
-
int val;
-
struct ListNode *next;
- };
*/
struct ListNode* removeDuplicateNodes(struct ListNode* head) {
if (head == NULL)//判断是否为空表,是返回空
{
return NULL;
}
struct ListNode* current = head;//定义结构体指针当前,赋值为头指针
while (current)//定义当前指针是否为空,空停止循环
{
struct ListNode* p = current;//把当前的值赋给p
while (p->next)//判断p的next是否为空,空停止循环
{
if (current->val == p->next->val)//判断当前值是否=p下一个的值第一个p就是当前值
{
p->next = p->next->next;//如果是p指向下下一个链接节点跳过后面重复节点
}
else
{
p = p->next;//否则相当p++
}
}
current = current->next;//相当循环的i++
}
return head;