JZ76 删除链表中重复的结点

坚持第56天,加油!!!

题目

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

示例1

输入:

{1,2,3,3,4,4,5}

复制返回值:

{1,2,5}

复制

示例2

输入:

{1,1,1,8}

复制返回值:

{8}

代码

/*
 public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}
*/
public class Solution {
    public ListNode deleteDuplication(ListNode pHead) {
        ListNode prenode=new ListNode(-1);
        prenode.next=pHead;
        ListNode pre=prenode;
        ListNode node=pHead;
        if(pHead==null)
            return null;
        while(node!=null)
        {
            if(node.next!=null&&node.val==node.next.val)
            {
                node=node.next;
                while(node.next!=null&&node.val==node.next.val)
                {
                    node=node.next;
                }
                node=node.next;
                pre.next=node;
            }
            else {
                pre=node;
                node=node.next;
            }
        }
        return prenode.next;
    }
}

反思

最开始想的出啦问题


版权声明:本文为qq_43808588原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。