删除链表中重复的结点

来源:互联网 发布:ftp同步软件 编辑:程序博客网 时间:2024/05/16 05:15

题目描述

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

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

写链表就是心累,各个指针指来指去要弄清楚

0 0
原创粉丝点击