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

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

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

思路

  1. 数组加哈希表
  2. 数组存值
  3. 哈希表筛选出不重复的值
  4. 最后遍历筛选出来的值生成链表
  5. 空间消耗大O(n),时间O(n)
unction deleteDuplicates( head ) {
    let arr = []
    while(head) {
        arr.push(head.val)
        head = head.next
    }
    let map = new Map()
    for(let item of arr) {
        map.set(item, (map.get(item) || 0 )+ 1)
    }
    let res = []
    for(let [index, item] of map.entries()) {
        if(item == 1) {
            res.push(index)
        }
    }
    let node = new ListNode(-1)
    let pre = node
    for(let item of res) {
        node.next = new ListNode(item)
        node = node.next
    }
    return pre.next
}

全部评论

相关推荐

04-29 00:12
小米_人力资源
牛客448863700号:也得看岗位呀,我还拿下美团呢,不说了送单了
点赞 评论 收藏
分享
06-23 18:25
沈阳大学 Java
HR已读不回,是我说话方式不对吗?
大白之主:你是串子吗? hr: 我们不招人了,把岗位挂着boss只是因为我闲得慌
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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