2.1 编写代码,移除未排序链表中的重复节点。

不使用临时缓存:

如果不允许使用临时的缓存(即不能使用额外的存储空间),那需要两个指针, 当第一个指针指向某个元素时,第二个指针把该元素后面与它相同的元素删除, 时间复杂度O(n2 )。

C++实现代码:

#include<iostream>
#include<new>
using namespace std;struct ListNode
{int val;ListNode *next;ListNode(int x):val(x),next(NULL) {}
};void createList(ListNode *&L)
{int arr[10]= {1,2,3,2,5,6,7,3,9,1};int i;ListNode *p=NULL;for(i=0; i<10; i++){ListNode *tmp=new ListNode(arr[i]);if(L==NULL){L=tmp;p=tmp;}else{p->next=tmp;p=tmp;}}
}void deleteDup(ListNode *L)
{if(L==NULL)return;ListNode *p=L;ListNode *q=NULL;while(p){q=p;while(q->next){if(q->next->val==p->val)q->next=q->next->next;elseq=q->next;}p=p->next;}
}int main()
{ListNode *head=NULL;createList(head);ListNode *p=head;while(p){cout<<p->val<<" ";p=p->next;}cout<<endl;deleteDup(head);p=head;while(p){cout<<p->val<<" ";p=p->next;}cout<<endl;
}

运行结果:

转载于:https://www.cnblogs.com/wuchanming/p/4141163.html

careercup-链表 2.1相关推荐

  1. [CareerCup] 2.4 Partition List 划分链表

    2.4 Write code to partition a linked list around a value x, such that all nodes less than x come bef ...

  2. [CareerCup] 4.4 Create List at Each Depth of Binary Tree 二叉树的各层创建链表

    4.4 Given a binary tree, design an algorithm which creates a linked list of all the nodes at each de ...

  3. M1: 复制带随机指针的链表

    一个链表问题:复制带随机指针的链表 题目:有一个链表L,其每个节点有2个指针,一个指针next指向链表的下个节点,另一个random随机指向链表中的任一个节点,可能是自己或者为空,写一个程序,要求复制 ...

  4. 【CareerCup】 Linked Lists—Q2.5

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/22097191     题目: Given a circular linked list, ...

  5. 伍六七带你学算法 入门篇-链表的中间节点

    力扣-876链表的中间节点 难度-简单 给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此 ...

  6. Go 学习笔记(80)— Go 标准库 container/list(单链表、双链表)

    列表是一种非连续存储的容器,由多个节点组成,节点通过一些变量记录彼此之间的关系.列表有多种实现方法,如单链表.双链表等. ​ 在 Go 语言中,将列表使用 container/list 包来实现,内部 ...

  7. 数据结构(08)— 线性单链表基本操作

    1. 线性单链表数据结构 // 假定每个结点的类型用 SNode 表示 typedef struct SNodeTag {int data; // 所存储的数据元素SNodeTag *next; // ...

  8. 数据结构(05)— 线性单链表实战

    1. 设计思路 本项目的实质是完成对考生信息的建立.查找.插入.修改.删除等功能,可以首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结 ...

  9. 使用python建立简单的单链表

    代码 import sysclass ListNode:def __init__(self, x):self.val = xself.next = None# 将列表转换成链表 def list_to ...

  10. LeetCode19. Remove Nth Node From End of List 删除链表中的倒数第n个位置的元素

    前言 本文是LeetCode19. Remove Nth Node From End of List解法,这个题目需要删除链表中的倒数第n个位置的元素 代码 # -*- coding: utf-8 - ...

最新文章

  1. php字符串比较函数
  2. Java中的拆箱与装箱
  3. python小工具myqr生成动态二维码
  4. SpringBoot - 构建监控体系03_使用 Admin Server 管理 Spring 应用程序
  5. 项目管理理论与实践(1)——企业项目管理介绍
  6. 拍乐云基于AV1的实时视频系统技术实践
  7. GNU gcc的编译工具用法(转)
  8. angular学习的一些小笔记(中)之表单验证
  9. java 前置通知_spring aop中的前置通知
  10. 【机器学习】监督学习--KNN(最近邻)算法
  11. linux写永久路由命令,用route命令添加永久路由(示例代码)
  12. 【计算机网络笔记】因特网概述
  13. matplotlib画子图subplot
  14. 游戏开发之C++引用(C++基础)
  15. Pthreads线程的基本常识
  16. 编程珠玑第一章-位图压缩存储
  17. 四川绵阳动感地带学生套餐资费备忘
  18. 英语发音规则---/ŋ/与/ŋg/的读音区别
  19. MATLAB 8.1 R2013a license.lic 问题
  20. html+怎么播放avi视频,视频格式怎么修改?

热门文章

  1. 计算机专业英语第五版卢川英pdf,《德意志意识形态》中的“现实的个人”及其自由全面发展.pdf...
  2. php 运行 shell命令行参数,PHP exec()在通过浏览器执行时不会执行shell命令
  3. Mendeley Desktop 很好用的一个文件管理软件
  4. 安装完matlab7.0(2009版本问题)但无法运行
  5. CVPR 2017 《Object Detection in Videos with Tubelet Proposal Networks》论文笔记
  6. AtCoder AGC035E Develop (DP、图论、计数)
  7. 电脑技术吧_极简技术|快速整理电脑桌面繁乱的图标
  8. three.js glb 多个_25万的预算,奔驰GLB、宝马X1、奥迪Q3该怎么选
  9. [转]常用OCR软件介绍
  10. 《软件需求模式》阅读笔记01