专业的JAVA编程教程与资源

网站首页 > java教程 正文

删除链表中重复的节点

temp10 2024-12-31 14:46:41 java教程 12 ℃ 0 评论

删除链表中重复的节点

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留。

样例1
输入:1->2->3->3->4->4->5
输出:1->2->5

样例2
输入:1->1->1->2->3
输出:2->3

时间复杂度O(n)

删除链表中重复的节点

class Solution {
    public ListNode deleteDuplication(ListNode pHead) {
        if(pHead==null||pHead.next==null){
            return pHead;
        }
        //判断是否有重复
        if(pHead.val==pHead.next.val){
            //有重复的话一直判断,是否有连续多个相同的重复
            ListNode node=pHead.next;
            //将所有重复点忽略,直接连接到没有重复的点
            while(node != null && node.val == pHead.val){
                node=node.next;
            }
            return deleteDuplication(node);
        }else{
            //如果没有重复的数字,那么我就让pHead的下一个节点继续迭代
            pHead.next=deleteDuplication(pHead.next);
            return pHead;
        }
    }
}

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表