题目描述
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:
输入: 1->1->2
输出: 1->2
示例 2:
输入: 1->1->2->3->3
输出: 1->2->3
思路:
比较第一个节点的值(ln.val)和第二个节点的值(ln.next.val),如果值相等,则将第一个节点指向第三个节点。(ln.next=ln.next.next)
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head == null || head.next == null){
return head;
}
ListNode ln=head;
while(ln.next!=null) {
if(ln.next.val==ln.val) {
ln.next=ln.next.next;
}else{
ln=ln.next;
}
}
return head;
}
}
执行用时:1 ms
内存消耗:37.4 MB
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list