题目
1- 思路
- 模式识别1:已排序链表 ——> 判重逻辑 ,涉及到 while
2- 实现
⭐82. 删除排序链表中的重复元素 II——题解思路

class Solution {public ListNode deleteDuplicates(ListNode head) {ListNode dummyHead = new ListNode(-1);dummyHead.next = head;ListNode cur = dummyHead;while(cur.next!=null && cur.next.next!=null){if(cur.next.val==cur.next.next.val){int x = cur.next.val;while(cur.next!=null && x == cur.next.val){cur.next = cur.next.next;}}else{cur = cur.next;}}return dummyHead.next;}
}
3- ACM 实现
public class removeDuplicate {static class ListNode{int val;ListNode next;ListNode(){}ListNode(int x){val = x;}}public static ListNode removeDuplicate(ListNode head){ListNode dummyHead = new ListNode(-1);dummyHead.next = head;ListNode cur = dummyHead;while(cur.next!=null && cur.next.next!=null){if(cur.next.val==cur.next.next.val){int x = cur.next.val;while(cur.next!=null && cur.next.val == x){cur.next = cur.next.next;}}else{cur = cur.next;}}return dummyHead.next;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("输入链表长度");int n = sc.nextInt();ListNode head = null,tail = null;System.out.println("输入链表元素");for(int i = 0 ; i < n;i++){ListNode newNode = new ListNode(sc.nextInt());if(head==null){head = newNode;tail = newNode;}else{tail.next = newNode;tail = newNode;}}ListNode res = removeDuplicate(head);while(res!=null){System.out.print(res.val+" ");res = res.next;}}
}