存在一个按升序排列的链表,给你这个链表的头节点 head
,请你删除所有重复的元素,使每个元素 只出现一次 。
返回同样按升序排列的结果链表。
我的思路:
从指针cur 指向链表的头节点,随后开始对链表进行遍历。如果当前 cur 与cur.next 对应的元素相同,那么我们就将 cur.next 从链表中移除;否则说明链表中已经不存在其它与 cur 对应的元素相同的节点,因此可以将cur 指向cur.next。
代码如下:
public class Solution { public ListNode deleteDuplicates(ListNode head) { if (head == null){ return head; } ListNode res = new ListNode(); res = head; while (res.next != null){ if (res.next.val == res.val){ res.next = res.next.next; }else { res = res.next; } } return head; } }