您的位置:首页 > Web前端

剑指offer—删除链表中重复的结点

2017-12-12 14:52 471 查看
题目描述

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

public class Solution {
public ListNode deleteDuplication(ListNode pHead)
{
if(pHead==null || pHead.next==null) return pHead;
ListNode pre = new ListNode(0);
pre.next = pHead;
ListNode realHead = pre;
ListNode cur = pHead;
while(cur!=null && cur.next!=null){
if(cur.next!=null && cur.val==cur.next.val){
while(cur.next!= null && cur.val==cur.next.val){
cur = cur.next;
}
cur = cur.next;
pre.next = cur;
}else{
pre = cur;
cur = cur.next;
}
}
return realHead.next;
}
}


思路比较简单,只是需要注意当头节点和尾结点也是重复结点的情况,这道题写的较为缓慢,需要多练习和链表相关的题目
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: