美文网首页
删除排序链表中的重复元素

删除排序链表中的重复元素

作者: 422ccfa02512 | 来源:发表于2020-11-10 21:06 被阅读0次

    题目

    难度级别:简单

    给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。

    示例 1:

    输入: 1->1->2
    输出: 1->2

    示例 2:

    输入: 1->1->2->3->3
    输出: 1->2->3

    解题思路

    法一

    通过创建新链表,初始化99999999作为哨兵节点,当新链表当前值与head当前值不相等时,将prev前移。

    const deleteDuplicates = function(head) {
        let l = new ListNode(99999999) 
        let prev = l
    
        while(head != null) {
            if (head.val != prev.val) {
                prev.next = head       
                prev = prev.next
            }else {
                prev.next = null
            }
    
            head = head.next
        }
    
        return l.next
    };
    

    法二

    遍历head,若他的当前项的值与下一项的值相等,则删除下一项的值,prev前移。

    const deleteDuplicates = function(head) {
        let prev = head
    
        while(prev && prev.next) {
            if (prev.val === prev.next.val) {
                prev.next = prev.next.next
            }else {
                prev = prev.next
            }
        }
    
        return head
    };
    

    题目来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list

    相关文章

      网友评论

          本文标题:删除排序链表中的重复元素

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