Skip to content

Commit 20610bd

Browse files
refactor 82
1 parent f6c7f36 commit 20610bd

File tree

1 file changed

+21
-31
lines changed
  • src/main/java/com/fishercoder/solutions

1 file changed

+21
-31
lines changed

src/main/java/com/fishercoder/solutions/_82.java

Lines changed: 21 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,29 @@
22

33
import com.fishercoder.common.classes.ListNode;
44

5-
/**
6-
* 82. Remove Duplicates from Sorted List II
7-
*
8-
* Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
9-
10-
For example,
11-
Given 1->2->3->3->4->4->5, return 1->2->5.
12-
Given 1->1->1->2->3, return 2->3.
13-
14-
*/
155
public class _82 {
16-
public static class Solution1 {
17-
public ListNode deleteDuplicates(ListNode head) {
18-
if (head == null) {
19-
return head;
20-
}
21-
ListNode fakeHead = new ListNode(-1);
22-
fakeHead.next = head;
23-
ListNode pre = fakeHead;
24-
ListNode curr = head;
25-
while (curr != null) {
26-
while (curr.next != null && curr.val == curr.next.val) {
27-
curr = curr.next;
28-
}
29-
if (pre.next == curr) {
30-
pre = pre.next;
31-
} else {
32-
pre.next = curr.next;
6+
public static class Solution1 {
7+
public ListNode deleteDuplicates(ListNode head) {
8+
if (head == null) {
9+
return head;
10+
}
11+
ListNode fakeHead = new ListNode(-1);
12+
fakeHead.next = head;
13+
ListNode pre = fakeHead;
14+
ListNode curr = head;
15+
while (curr != null) {
16+
while (curr.next != null && curr.val == curr.next.val) {
17+
curr = curr.next;
18+
}
19+
if (pre.next == curr) {
20+
pre = pre.next;
21+
} else {
22+
pre.next = curr.next;
23+
}
24+
curr = curr.next;
25+
}
26+
return fakeHead.next;
3327
}
34-
curr = curr.next;
35-
}
36-
return fakeHead.next;
3728
}
38-
}
3929

4030
}

0 commit comments

Comments
 (0)