删除排序链表中的重复元素
题目
- 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。、
操作代码
public class Solution {
public ListNode DeleteDuplicates(ListNode head)
{
if (head == null || head.next == null)
{
return head;
}
ListNode l1 = head;
ListNode l2 = head.next;
while (l2 != null)
{
if (l2.val != l1.val)
{
l1.next = l2;
l1 = l2;
}
l2 = l2.next;
}
l1.next = null;
return head;
}
}
解题思路
定义两个新的头结点,一个前一个后,如果前后相等就将前一个继续移动,如果不相等就把前一个结点后面的链表都移动到后一个结点的后面,然后再把后一个结点往后移动到前一个结点的位置,再把前一个结点继续向前移动。
题目链接:
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/