public class Solution
{
public ListNode deleteDulplicationNode(ListNode head)
{
//不可能有重复节点的情况。直接返回head;
if (head == null || head.next == null)
return head;
ListNode next = head.next;
//有重复的情况要考虑 头节点是否重复。如果头节点重复的话就不能返回head了。要返回新的头节点。
if (head.val == next.val)
{
//把next指向第一个不重复的节点
while (head.val == next.val && next != null)
next = next.next;
//以next为head重新进行删除操作。
return deleteDulplicationNode(next);
}
//头结点不重复的情况下,把下一个节点作为头结点开始删除操作。最后返回head;
else
{
head.next = deleteDulplicationNode(head.next);
return head;
}
}
}
《剑指offer》NO18.2 删除链表中重复的节点 详解 <Java实现>
最新推荐文章于 2021-08-07 13:24:01 发布