Skip to content

Commit 4a983fd

Browse files
committed
83.删除排序链表中的重复元素
1 parent fe6b7ab commit 4a983fd

File tree

3 files changed

+55
-0
lines changed

3 files changed

+55
-0
lines changed

leetcode_Java/DoneTitle.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
78. 子集
4646
79. 单词搜索
4747
82. 删除排序链表中的重复元素 II
48+
83. 删除排序链表中的重复元素
4849
84. 柱状图中最大的矩形
4950
85. 最大矩形
5051
88. 合并两个有序数组

leetcode_Java/DoneType.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@
113113
23. 合并K个升序链表(顺序合并,分治合并)
114114
25. K 个一组翻转链表(多指针)
115115
82. 删除排序链表中的重复元素 II(递归,双指针)
116+
83. 删除排序链表中的重复元素
116117
92. 反转链表 II(多指针)
117118
141. 环形链表(快慢指针,列表,哈希表)
118119
142. 环形链表 II(快慢指针,列表,哈希表)

leetcode_Java/Solution0083.java

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
// 83. 删除排序链表中的重复元素
2+
3+
4+
/**
5+
* Definition for singly-linked list.
6+
* public class ListNode {
7+
* int val;
8+
* ListNode next;
9+
* ListNode() {}
10+
* ListNode(int val) { this.val = val; }
11+
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
12+
* }
13+
*/
14+
15+
16+
/*
17+
1、创建哨兵节点标记链表头部,用于删除节点后返回链表
18+
2、使用前后两个指针pre、head来标记节点位置,通过判断head不为空来循环遍历,从而保证能获取前后两个节点的值来判断
19+
*/
20+
class Solution {
21+
public ListNode deleteDuplicates(ListNode head) {
22+
ListNode root = new ListNode(-101, head);
23+
ListNode pre = root;
24+
while (head != null) {
25+
if (head.val == pre.val) {
26+
pre.next = head.next;
27+
} else {
28+
pre = head;
29+
}
30+
head = head.next;
31+
}
32+
return root.next;
33+
}
34+
}
35+
36+
37+
/*
38+
1、head为链表头部不变,用于删除节点后返回链表
39+
2、使用一个指针cur标记节点,通过判断cur和cur.next不为空来循环遍历,从而保证能获取前后两个节点的值来判断
40+
*/
41+
class Solution {
42+
public ListNode deleteDuplicates(ListNode head) {
43+
ListNode cur = head;
44+
while (cur != null && cur.next != null) {
45+
if (cur.val == cur.next.val) {
46+
cur.next = cur.next.next;
47+
} else {
48+
cur = cur.next;
49+
}
50+
}
51+
return head;
52+
}
53+
}

0 commit comments

Comments
 (0)