题解 | #删除有序链表中重复的元素-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
}

全部评论

相关推荐

03-25 19:00
东北大学 Java
程序员牛肉:太好了,是聊天记录。不得不信了。 当个乐子看就好,不要散播焦虑
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务