写点什么

LeetCode 题解:83. 删除排序链表中的重复元素,迭代,JavaScript,详细注释

用户头像
Lee Chen
关注
发布于: 2020 年 09 月 24 日
LeetCode题解:83. 删除排序链表中的重复元素,迭代,JavaScript,详细注释

原题链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/



解题思路:



  1. 遍历链表,同时对比当前节点和下一个节点的值。

  2. 如果两个相邻节点的值相等,则将当前节点和下下个节点连接,即将下一个节点删除。

  3. 如果当前链表为1->1->2,在遍历第一个节点时,会发现第1、2个节点的值相同,那么就把第1个和第3个节点链接,链表就变成了1->2



/**
* @param {ListNode} head
* @return {ListNode}
*/
var deleteDuplicates = function (head) {
let node = head; // 用于遍历链表
// 对比重复元素,需要两个节点都存在
while (node && node.next) {
// 对比两个节点的值是否相等
if (node.val === node.next.val) {
// 如果相等就把当前节点和下下个节点链接,即吧node.next删除
node.next = node.next.next;
// 在删除了node.next后,需要继续对比node和node.next.next的值,因此需要继续循环
continue;
}
// 如果两个节点的值不相等,则继续遍历链表
node = node.next;
}
// 返回新链表
return head;
};



发布于: 2020 年 09 月 24 日阅读数: 34
用户头像

Lee Chen

关注

还未添加个人签名 2018.08.29 加入

还未添加个人简介

评论

发布
暂无评论
LeetCode题解:83. 删除排序链表中的重复元素,迭代,JavaScript,详细注释