删除链表中重复的结点

来源:互联网 发布:程序员考试真题笔记 编辑:程序博客网 时间:2024/06/06 09:12


Description:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表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 head)    {        ListNode start = new ListNode(0);        start.next = head;        ListNode p = head;        ListNode pre = start;        while (p != null && p.next != null) {            if (p.val == p.next.val) {                int val = p.val;                while (p != null && p.val == val)                     p = p.next;                pre.next = p;            } else {                pre = p;                p = p.next;            }        }        return start.next;    }}


原创粉丝点击