题解 | #删除有序链表中重复的元素-II#

删除有序链表中重复的元素-II

https://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024

/*
 * function ListNode(x){
 *   this.val = x;
 *   this.next = null;
 * }
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param head ListNode类
 * @return ListNode类
 */
function deleteDuplicates(head) {
    // write code here
    const map = new Map();
    let cur = head;
    let pre;
    let newList = null;
    while (cur) {
        if (map.has(cur.val)) {
            map.set(cur.val, map.get(cur.val) + 1);
        } else {
            map.set(cur.val, 1);
        }
        cur = cur.next;
    }
    cur = head;
    while (cur) {
        let temp = cur;
        cur = cur.next;
        if (map.get(temp.val) === 1) {
            if (!pre) {
                pre = temp;
                newList = pre;
                pre.next = null
            } else {
                pre.next = temp;
                pre = pre.next;
                pre.next = null;
            }
        }
    }
    return newList;
}
module.exports = {
    deleteDuplicates: deleteDuplicates,
};

解题思路:用map记录重复的值,然后把具有重复值的节点删掉

#删除有序链表中重复的元素-II#
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-27 10:28
点赞 评论 收藏
分享
牛客868257804号:九个中铁八个中建
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务