Leetcode刷题(第83题)——删除排序链表中的重复元素
一、题目
给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。
二、示例
输入:head = [1,1,2] 输出:[1,2]
输入:head = [1,1,2,3,3] 输出:[1,2,3]
三、思路 进行两层循环,第一层while循环是不断的指向下一位,第二层循环是用来去除重复的,如果遇到重复的节点就跳过。 四、算法实现
/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } */ /** * @param {ListNode} head * @return {ListNode} */ var deleteDuplicates = function(head) { let p = head while(p) { let l = p while(p && p.next && p.val === p.next.val) { p = p.next } l.next = p.next p = p.next } return head };
五、总结
下一篇:
ACM必须注意的一个问题