LeetCode 83. 删除排序链表中的重复元素
题目描述
思路分析
- 因为链表是排序的,所以重复的元素一定是相邻的。
- 遍历链表,比较当前节点和下一个节点的值,如果相同则跳过下一个节点,否则移动到下一个节点。
- 继续遍历直到链表结束。
参考代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
func deleteDuplicates(head *ListNode) *ListNode {
if head == nil || head.Next == nil {
return head
}
cur := head
for cur != nil && cur.Next != nil {
if cur.Val == cur.Next.Val {
cur.Next = cur.Next.Next
} else {
cur = cur.Next
}
}
return head
}
- 时间复杂度: O (n),其中 n 是链表的长度。我们只需要遍历链表一次。
- 空间复杂度: O (1),我们只使用了常数级别的额外空间。
1
write your code here
CC BY-NC-SA 4.0
许可协议,转载请注明出处!
本博客所有文章除特别声明外,均采用