题目:删除链表中重复的结点
分析:需要pre表示前一个结点,p表示当前结点,遇到相同的结点p向后移动,pre不动,直到p.val !=p.next.val
public class DeleteDuplication {
/**
*
* @param pHead
* @return
*/
public ListNode deleteDuplication(ListNode pHead){
if(pHead == null){
return null;
}
ListNode preNode = null;
ListNode pNode = pHead;
while (pNode != null){
if(pNode.next != null && pNode.val == pNode.next.val){
int value = pNode.val;
while (pNode.next != null && pNode.next.val == value){
pNode = pNode.next;
}
if(preNode == null){
pHead = pNode.next;
}else {
preNode.next = pNode.next;
}
}else {
preNode = pNode;
}
pNode = pNode.next;
}
return pHead;
}
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
}