题目描述对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。测试样例:1->2->2->1返回:true 解答: 用栈即可,就是初次答链表,试一下 ...
分类:
其他好文 时间:
2017-04-12 19:23:12
阅读次数:
96
#include<stdio.h> #define MAX 100 int insert(int a[],int n,int i,int x) { int j; if(n+1>MAX) printf("无插入空间\n"); //数组仅仅能存MAX个数 else if(i<1||i>n+1) prin ...
分类:
编程语言 时间:
2017-04-12 09:49:28
阅读次数:
143
思路一: 1、先求出两个链表ListA,ListB的长度LengthA,LengthB。 2、然后先把长的链表头指针先往前走|LengthA - LengthB|步。 3、最后两个链表头指针同步往前走一步,直到指向的对象相同。 代码实现及测试用例: 思路2: 不用求出链表长度的值,但其实算法复杂度是 ...
分类:
其他好文 时间:
2017-04-11 11:32:39
阅读次数:
214
题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 思路:难点在于指针的控制。。。。 ...
分类:
其他好文 时间:
2017-04-11 09:53:37
阅读次数:
178
题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 /* struct ListNode { int val; struct ListNode *next; ListN ...
分类:
其他好文 时间:
2017-04-09 09:56:26
阅读次数:
133
Description 数组和链表是我们熟知的两种线性结构,但是它们不够灵活(不能同时实现直接插入、删除和访问操作),给你若干种操作,你能通过一种灵活的容器,实现它们的功能吗? 操作1:Build a b (产生一个大小为a的线性表,其值全部赋为b,每组样例仅出现一次,在起始行) 操作2:Modif ...
分类:
其他好文 时间:
2017-04-07 20:00:52
阅读次数:
129
1、顺序表 顺序表的优点: (1) 方法简单,各种高级语言中都有数组,容易实现。(2) 不用为表示结点间的逻辑关系而增加额外的存储开销。(3) 顺序表具有按元素序号随机访问的特点。 顺序表的缺点: (1) 在顺序表中做插入删除操作时,平均移动大约表中一半的元素,因此对n较大的顺序表效率低。(2) 需 ...
分类:
其他好文 时间:
2017-04-06 09:32:18
阅读次数:
154
题目描述 Description 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表。 栈有两种最重要的操作,即pop(从栈顶弹出一个元素)和push(将一个元素进栈)。 栈的重要性不言自明,任何一门数据结构的课程都会介绍栈。宁宁同学在复习栈的基本概念时,想到了一个书上没 ...
分类:
其他好文 时间:
2017-04-06 00:12:51
阅读次数:
276
0.科普 队列(queue)是一种常用的数据结构,可以将队列看做是一种特殊的线性表,该结构遵循的先进先出原则。 Java中,LinkedList实现了Queue接口,因为LinkedList进行插入、删除操作效率较高 相关常用方法: boolean offer(E e):将元素追加到队列末尾,若添加 ...
分类:
其他好文 时间:
2017-04-04 13:32:21
阅读次数:
136
线性表之顺序栈 栈是限定仅在表尾(栈顶)进行插入删除操作的线性表,FILO:先进后出 一、顺序栈的头文件:SeqStack.h //顺序栈头文件#include<iostream>using namespace std;//设置顺序栈的大小const int StackSize = 10;templ ...
分类:
编程语言 时间:
2017-04-04 10:46:54
阅读次数:
219