1. 本题知识点
链表
2. 题目描述
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表 1->2->3->3->4->4->5 处理后为 1->2->5
3. 解题思路
直接看代码吧,由于使用了递归,难以解释清楚。
4.代码
public class ListNode {
int val
;
ListNode next
= null
;
ListNode(int val
) {
this.val
= val
;
}
}
public class Solution {
public ListNode
deleteDuplication(ListNode pHead
) {
if (pHead
== null
|| pHead
.next
== null
) {
return pHead
;
}
ListNode next
= pHead
.next
;
if (pHead
.val
!= next
.val
) {
pHead
.next
= deleteDuplication(pHead
.next
);
return pHead
;
}
else {
while (next
!= null
&& pHead
.val
== next
.val
) {
next
= next
.next
;
}
return deleteDuplication(next
);
}
}
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-2246.html