美文网首页
83.删除排序链表

83.删除排序链表

作者: 最尾一名 | 来源:发表于2020-03-07 11:18 被阅读0次

    原题

    https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/

    解题思路

    用快慢指针,

    • 当快指针的值与慢指针的值相等时,右移快指针
    • 当快指针的值与慢指针的值不等时,令慢指针的 next 指向快指针,右移双指针
    • 当快指针到达链表末尾时,结束

    代码

    /**
     * Definition for singly-linked list.
     * function ListNode(val) {
     *     this.val = val;
     *     this.next = null;
     * }
     */
    /**
     * @param {ListNode} head
     * @return {ListNode}
     */
    var deleteDuplicates = function(head) {
        if (!head || !head.next) return head;
        const dump = new ListNode('s');
        dump.next = head;
        let prev = head, current = prev.next;
        while (current) {
            while (current && current.val === prev.val) {
                current = current.next;
            }
            prev.next = current;
            if (current) {
                prev = prev.next;
                current = prev.next;
            }
        }
        return dump.next;
    };
    

    复杂度

    • 时间复杂度 O(N)
    • 空间复杂度 O(1)

    相关文章

      网友评论

          本文标题:83.删除排序链表

          本文链接:https://www.haomeiwen.com/subject/yhyqdhtx.html