【20240114】LeetCode 83. 删除排序链表中的重复元素

Problem: 83. 删除排序链表中的重复元素

[TOC]

思路

遍历

解题方法

描述你的解题方法

复杂度

时间复杂度:

添加时间复杂度, 示例: $O(n)$

空间复杂度:

添加空间复杂度, 示例: $O(n)$

Code

[]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func deleteDuplicates(head *ListNode) *ListNode {
for i := head; i != nil && i.Next != nil ; {
if i.Next.Val == i.Val {
i.Next = i.Next.Next // 这里不用移动下个元素,只用删除重复元素 for i := head; i != nil && i.Next != nil ;i = i.Next { i = i.Next不需要
} else {
i = i.Next
}
}
return head
}

2
func deleteDuplicates(head *ListNode) *ListNode {
current := head

for current != nil && current.Next != nil {
if current.Next.Val == current.Val {
// 保存下一个节点的引用
nextNode := current.Next
// 删除当前节点
current.Next = nextNode.Next
// 释放内存
nextNode = nil
} else {
// 非重复元素,继续遍历
current = current.Next
}
}

return head
}


【20240114】LeetCode 83. 删除排序链表中的重复元素
https://leiqi.top/2024-01-14-e61755fec3db.html
作者
Lei Qi
发布于
2024年1月14日
许可协议