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) { // write code here // 解题思路:判断前一个节点的值和当前节点的值是否相同 // 相同则把当前节点后移,只有前一个节点的值和当前节点值不同 // 然后把前一个节点的next 节点指向当前节点,同时把前一个节点后移 // 最后记得把前一个节点的next 清空 ListNode pre = new ListNode(-1); ListNode root =pre; while(head != null){ if(pre.val != head.val){ pre.next = head; pre = pre.next; } head = head.next; } pre.next = null; return root.next; } }