题解 | #删除有序链表中重复的元素-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 { /** * 思路: 双指针 * 定义两个指针指针分别指向第一个和第二个节点,通过循环比较两个节点是否相等 * 如果不相等,同时向后移动 * 如果相等,让慢指针指向快指针的的下一个节点,删除重复节点,此时需要让快指针继续移动 * 直到没有重复元素为止 * @param head ListNode类 * @return ListNode类 */ public ListNode deleteDuplicates (ListNode head) { if(head == null || head.next == null){ return head; } ListNode p1 = head; ListNode p2 = head.next; while(p2 != null){ if(p1.val == p2.val){ p1.next = p2.next; p2 = p2.next; }else{ p1 = p1.next; p2 = p2.next; } } return head; } }