Skip to content

Commit 6b52878

Browse files
committed
📝 add lc 82
1 parent 2ba2d75 commit 6b52878

File tree

2 files changed

+89
-0
lines changed

2 files changed

+89
-0
lines changed

Java/alg/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@
127127
- [77.组合](lc/77.组合.md)
128128
- [78.子集](lc/78.子集.md)
129129
- [79.单词搜索](lc/79.单词搜索.md)
130+
- [82.删除排序链表中的重复元素2](lc/82.删除排序链表中的重复元素2.md)
130131

131132
## 笔试
132133

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# 82. 删除排序链表中的重复元素 II
2+
3+
[url](https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/)
4+
5+
## 题目
6+
7+
存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字。
8+
9+
返回同样按升序排列的结果链表。
10+
11+
![](https://assets.leetcode.com/uploads/2021/01/04/linkedlist1.jpg)
12+
13+
14+
```
15+
输入:head = [1,2,3,3,4,4,5]
16+
输出:[1,2,5]
17+
```
18+
19+
20+
21+
22+
## 方法
23+
24+
25+
26+
27+
## code
28+
29+
### js
30+
31+
```js
32+
let deleteDuplicates = head => {
33+
if (head === null || head.next === null)
34+
return head;
35+
let next = head.next;
36+
if (head.val === next.val) {
37+
while (next !== null && head.val === next.val)
38+
next = next.next;
39+
return deleteDuplicates(head);
40+
} else {
41+
head.next = deleteDuplicates(head.next);
42+
return head;
43+
}
44+
}
45+
```
46+
47+
### go
48+
49+
```go
50+
func deleteDuplicates2(head *ListNode) *ListNode {
51+
if head == nil || head.Next == nil {
52+
return head
53+
}
54+
next := head.Next
55+
if head.Val == next.Val {
56+
for next != nil && head.Val == next.Val {
57+
next = next.Next
58+
}
59+
return deleteDuplicates2(next)
60+
} else {
61+
head.Next = deleteDuplicates2(head.Next)
62+
return head
63+
}
64+
}
65+
```
66+
67+
68+
69+
### java
70+
71+
```java
72+
class Solution {
73+
public ListNode deleteDuplicates(ListNode head) {
74+
if (head == null || head.next == null)
75+
return head;
76+
ListNode next = head.next;
77+
if (head.val == next.val) {
78+
while (next != null && head.val == next.val)
79+
next = next.next;
80+
return deleteDuplicates(next);
81+
} else {
82+
head.next = deleteDuplicates(head.next);
83+
return head;
84+
}
85+
}
86+
}
87+
```
88+

0 commit comments

Comments
 (0)