存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。
返回同样按升序排列的结果链表。
示例 1:
输入:head = [1,1,2]
输出:[1,2]
示例 2:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210326182059526.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hhcnN3bGdi,size_16,color_FFFFFF,t_70)
输入:head = [1,1,2,3,3]
输出:[1,2,3]
提示:
链表中节点数目在范围 [0, 300] 内
-100 <= Node.val <= 100
题目数据保证链表已经按升序排列
今天的题目感觉应该和昨天对调一下,这个要求简单些,只需要在遍历时遇到与下一节点不同的值时,添加至有些链表中即可
下附代码
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head==null) return head;
ListNode dummy = new ListNode(-101);//虚拟头节点
ListNode tail=dummy;
while (head!=null){
if(head.next==null || head.val!=head.next.val){
tail.next=head;
tail=tail.next;
}
head=head.next;
}
tail.next=null;
return dummy.next;
}
}
此文章创于本人学习时的记录,如有错误或更优解还请指出