LeetCode题解:83. 删除排序链表中的重复元素,迭代,JavaScript,详细注释
Opened this issue · 0 comments
chencl1986 commented
原题链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/
解题思路:
- 遍历链表,同时对比当前节点和下一个节点的值。
- 如果两个相邻节点的值相等,则将当前节点和下下个节点连接,即将下一个节点删除。
- 如果当前链表为
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;
};