删除链表中的所有重复出现的元素

删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次

例:11123, 返回 23

思路:

1,如果下一个节点和当前节点值相同,则删除下一个节点
删除步骤
1.1,当前节点的下一个为下一个节点的下一个
1.2,下一个节点指向当前节点的下一个
2,如果下一个节点和当前节点值不同,则都指向其下一个节点

代码

/**
 * 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){
            return null;
        }
        //如果下一个节点和当前节点值相同,则删除下一个节点
        ListNode cur = head;
        ListNode next = head.next;
        while (next != null){
            if(cur.val == next.val){
                cur.next = next.next;
                next = cur.next;
            }else {
                cur = next;
                next = next.next;
            }
        }
        return head;
    }
}
原文地址:https://www.cnblogs.com/dongma/p/14198366.html