题解 | #删除有序链表中重复的元素-I#
删除有序链表中重复的元素-I
https://www.nowcoder.com/practice/c087914fae584da886a0091e877f2c79
import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* public ListNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
public ListNode deleteDuplicates (ListNode head) {
if(head==null||head.next==null){return head;}
ListNode fast,slow;
fast=head;
slow=head;
if(fast!=null){fast=fast.next;}
while(fast!=null){
if(fast!=null&&fast.val==slow.val){
fast=fast.next;
slow.next=fast;
}if(fast!=null&&fast.val!=slow.val){
slow=fast;
fast=fast.next;
}
}
return head;
}}
思路很简单,就是整两个指针,一旦相同就改slow的指向即可,需要注意的是空指针的.val会报错,因此要先判断该指针不为空,才能使用.val。其次就是一些逻辑上的小问题了。