• 83、删除排序链表中的重复元素 | JS-链表


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

    返回同样按升序排列的结果链表。

     

    示例 1:

    输入:head = [1,1,2]
    输出:[1,2]


    示例 2:

    输入:head = [1,1,2,3,3]
    输出:[1,2,3]
     

    提示:

    • 链表中节点数目在范围 [0, 300] 内
    • -100 <= Node.val <= 100
    • 题目数据保证链表已经按升序排列

    思路:因为链表有序,所以重复元素一定相邻,遍历链表如果当前元素与下个元素相同就删除下个元素值,遍历结束之后返回原链表的头部。

     1 /**
     2  * Definition for singly-linked list.
     3  * function ListNode(val, next) {
     4  *     this.val = (val===undefined ? 0 : val)
     5  *     this.next = (next===undefined ? null : next)
     6  * }
     7  */
     8 /**
     9  * @param {ListNode} head
    10  * @return {ListNode}
    11  */
    12 var deleteDuplicates = function(head) {
    13     let p = head;
    14     while (p && p.next) {  //当前元素和下个元素都有值
    15         if(p.val === p.next.val) {
    16             p.next = p.next.next;
    17         } else {  //如果当前的值和下一个值相同,就不往后移动,直接删除后面哪一个即可,因为如果第三个值和第一个值相同还要再比一遍
    18             p = p.next;
    19         }
    20     }
    21     return head; //删除完成之后,只需要返回原链表的头部
    22 };
  • 相关阅读:
    疯狂Java学习笔记(008)
    CSS-链接
    css学习:css样式的引入
    两个文本根据索引key关联合并,将无关联信息单独输出
    三 数据挖掘算法
    二、数据挖掘
    vsftp虚拟账户设置
    python3在linux下的编码错误
    python 一个根据正则判断输入的函数
    python excel读写与dict转换
  • 原文地址:https://www.cnblogs.com/oaoa/p/14825552.html
Copyright © 2020-2023  润新知