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

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

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

利用数组进行存储链表内元素出现的频次,最后进行拼接

/*
 * function ListNode(x){
 *   this.val = x;
 *   this.next = null;
 * }
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * {1,2,2} => {1}
 * {} => {}
 * {1,1,1} => {}
 * {2,2,3} => {3}
 *
 * @param head ListNode类
 * @return ListNode类
 */
function deleteDuplicates(head) {
    // write code here
    let arr = [];
    while (head) {
        const t = arr.find((e) => e.val === head.val);
        if (t) {
            t.num++;
        } else {
            arr.push({ val: head.val, num: 1 });
        }
        head = head.next;
    }

    let p = new ListNode();
    let res = p;
    arr.forEach((e) => {
        if (e.num === 1) {
            res.next = new ListNode(e.val);
            res = res.next;
        }
    });

    return p.next;
}
module.exports = {
    deleteDuplicates: deleteDuplicates,
};

全部评论

相关推荐

给我发了笔试链接,想着等晚上回去做,结果还没做流程就终止了
伟大的小黄鸭在学习:我猜就是笔试几乎没用,就是用来给用人部门拖时间复筛简历的,可能用人部门筛到你简历觉得不合适就提前挂了
投递小鹏汽车等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务