[路飞]_24. 两两交换链表中的节点

103 阅读1分钟

题目介绍

存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。

来源:力扣(LeetCode) 链接:leetcode-cn.com/problems/re… 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路

遍历然后片段 当前节点的val值是否和下一个节点的val值相等,如果相等设置当前节点的next为 下下个节点,并且当前节点不可以,往下移动,因为下个节点还有可能相同,所以要再做一次比较

var deleteDuplicates = function(head) {
    if (!head) return null
    let cur = head
    while(cur && cur.next) {
    if (cur.val === cur.next.val) {
      // 相同改变当前的next指向,但是cur 不能在往下移动了, 因为有可能是这种情况 [1,2,2,2]连续几个相同的
      cur.next = cur.next.next
    } else {
        cur = head.next
    }
    
     
  }
  return head
};