题目介绍
给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。
示例1:
输入:head=[1,1,2]
输出:[1,2]
示例2:
输入:head=[1,1,2,3,3]
输出:[1,2,3]
思路
本题的思路相当简单,只需要循环遍历链表,若当前结点与下一结点的值相等时,把当前结点的next域改成指向下一结点的下一结点即可
代码实现
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode deleteDuplicates(ListNode head) {
ListNode h;
h=head;
if(head==null){
return null;
}
while(head.next!=null){
if(head.val==head.next.val){
head.next=head.next.next;
}else{
head=head.next;
}
}
return h;
}
}