【LeetCode】【82】【Remove Duplicates from Sorted List II】

博客写到这份上也是醉了,总是在借鉴别人的算法,很难受。。。。。。。
题目:Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
解题思路:
借鉴于:https://leetcode.com/problems/remove-duplicates-from-sorted-list-ii/discuss/28335/My-accepted-Java-code
我也很想分享自己的代码给大家,可是确实没人家的简单且快速。那我就把博文标注为转载好了。。。
代码:

class ListNode {
    int val;
    ListNode next;
    ListNode(int x) {
        val = x;
    }
}
    public ListNode deleteDuplicates(ListNode head) {
        if(head == null)return null;
        ListNode dummyNode = new ListNode(-1);
        dummyNode.next = head;
        ListNode pre = dummyNode;
        ListNode cur = head;
        while (cur!=null){
            while (cur.next!=null && cur.val == cur.next.val){
                cur = cur.next;
            }
            if(pre.next == cur){ //没有跟cur相同的节点
                pre = pre.next;
            }else {
                pre.next = cur.next;
            }
            cur = pre.next;
        }
        return dummyNode.next;
    }

猜你喜欢

转载自blog.csdn.net/u012503241/article/details/82914914