这道题与实现数组中的删除重复元素类似。我们来看一下具体的过程,首先要判断是否为空(在这个上面吃了大苦头),删除下一个相同的元素的时候要定义一个tmp元素,再free掉即可。
#include
#include
struct ListNode
{
int val;
ListNode *next;
};
ListNode *deleteDuplicates(ListNode *head...
分类:
其他好文 时间:
2015-04-22 11:49:00
阅读次数:
150
优先队列和堆排序标签(空格分隔): 排序算法 数据结构优先队列和堆排序
优先队列
堆
1 基于堆的算法
初始化
自底向上堆化
自顶向下堆化
插入删除一项
2 堆排序
优先队列全部代码
1 优先队列普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (largest-in,first-...
分类:
编程语言 时间:
2015-04-08 10:59:15
阅读次数:
214
双端队列是一种插入和删除可以既可以在表头也可以表尾进行的一种数据结构,四种基本操作分别为:
push:在表头插入
pop:在表头删除
insert:在表尾插入
eject:在表尾删除
每一种操作的复杂度都为O(1)。通过组合不同插入和删除,双端队列可以作为栈使用,也可以作为队列使用:#include "stdafx.h"
#include using namespace...
分类:
其他好文 时间:
2015-04-05 10:36:04
阅读次数:
201
NSArray 代表集合元素不可变的集合,一旦NSArray被创建成功,程序不能向集合中添加新元素,删除旧元素,替换旧元素。
NSMultableArray 恰恰相反,为可变元素的集合,可以增加、删除、替换元素。
可进行的操作:
1、创建 arrayWithCapacity
2、增加元素,以add开头
3、删除元素,以remove开头
4、替换元素,以replace开头
5、对集合本...
分类:
其他好文 时间:
2014-12-04 20:04:12
阅读次数:
216
队列是操作受限的线性表,只允许在队尾插入元素,在队头删除元素。对于链队列结构,为了便于插入元素,设立了队尾指针,这样插入元素的操作便与队列长度无关。...
分类:
其他好文 时间:
2014-11-10 15:33:54
阅读次数:
306
删除win7快捷方式小箭头,删除win7快捷方式小箭头,恢复Win7快捷方式箭头,恢复XP快捷方式箭头
删除reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" /v 29 /d "%systemroot%\system32\imageres.dll,197" /t reg...
分类:
其他好文 时间:
2014-10-28 09:20:59
阅读次数:
243
双向链表:
就是有双向指针 即 双向的链域
链结点的结构:
┌────┬────┬────────┐
│data│next│previous│
└────┴────┴────────┘
双向链表不必是双端链表(持有对最后一个链结点的引用),双端链表插入时是双向的
有两条链:一条从头到尾,一条从尾到头,删除遍历时也是双向的
/**
* 双向链表
*
* @author s...
分类:
编程语言 时间:
2014-10-26 01:41:27
阅读次数:
255
单链表双端链表有序链表双向链表头插O(1)O(1)头删O(1)O(1)尾插O(1)O(1)尾删O(N)O(1)插入MaxO(N)|MinO(N/2)删除O(1)查找结点O(N)次比较无移动次数删除结点O(N)次比较无移动次数O(N)–deleteKey(inti)指定结点后插入O(N)次比较无移动次...
分类:
其他好文 时间:
2014-09-30 15:06:19
阅读次数:
264
链队列,即队列的链式存储结构,它是仅在表头删除和表尾插入的单链表,因此一个链队列需要设置两个分别指示队头元素和队尾元素的指针,为了操作方便,给链队列添加一个头结点,并令队头指针指向头结点,由此,空的链队列的判断条件就是队头指针和队尾指针均指向头结点。
链队列的类型描述:
//链队列类型描述
typedef int QElemType;
typedef struct node{
QElemTy...
分类:
其他好文 时间:
2014-09-22 01:57:11
阅读次数:
189