码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2021-06-02 15:48:48      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:16px   function   src   loading   alt   png   null   排序   val   

存在一个按升序排列的链表,给你这个链表的头节点 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 };

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

标签:16px   function   src   loading   alt   png   null   排序   val   

原文地址:https://www.cnblogs.com/oaoa/p/14825552.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!