题目描述
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/
解题思路
- 因为链表是有序的 , 所以重复元素一定相邻
- 遍历链表, 若发现当前元素和下个元素值相同, 就删除下个元素
- 遍历结束后, 返回原链表头部
代码实现
/*** 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 = headwhile(p){/** p.next?.val 这里是为了避免当p.next为null的时候报错 */if(p.val === p.next?.val){p.next = p.next.next/** 删除重复节点后p指针并不后移,避免下一节点也是重复节点的情况 */}else{p = p.next}}return head};
时间复杂度 O(n)
空间复杂度 O(1)
