文章

63

粉丝

0

获赞

0

访问

3.2k

头像
2015年计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年10月26日 01:23
阅读数 95

1.使用辅助数组统计出现过的元素的绝对值次数,索引为元素的值;然后遍历辅助数组中元素索引对应的值大于1的元素,逐个遍历链表,删除多余的元素

2.

    public void deleteDup(int n,ListNode *head){
        int []a=new int[n];
        ListNode *p = head.link;
        ListNode *q = head.link;
        int count=1;
        // 将每个元素出现过的次数统计到辅助数组中
        while(p!=null){
            if(p.data!=null && a[p.data]==0){
                a[abs(p.data)] = count;
            }
            p = p.link;
        }
        
        for(int i=0;i<n;i++){
            if(a[i]>1){
                ListNode *q = head; bool flag = false;
                while(q.link!=null){
                    if(abs(q.data) == i && !flag){
                        flag = true;
                    }else if(abs(q.data) == i && flag){
                        ListNode *q1 = q.link;q.link = q1.link;
                    }
                }
                q = q.link;
            }
        }

    }

3.时间复杂度为O(n^2),空间复杂度为O(n)


评分及理由

(1)得分及理...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发