Given a sorted linked list, delete all duplicates such that each element appear only
once.
For example,
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.
输入排序过的链表,删除相同的元素。
...
分类:
其他好文 时间:
2014-10-29 15:02:12
阅读次数:
178
//List.h#include typedef int dataType;struct Node{ Node():data(0),pNextNode(NULL){} //结点构造函数 dataType data; Node* pNextNode;};class List{priv...
分类:
编程语言 时间:
2014-10-09 15:33:20
阅读次数:
263
给定一个排好序的链表,删除所有重复的节点,使每一个节点都只出现一次...
分类:
其他好文 时间:
2014-10-05 21:17:09
阅读次数:
212
/* * ===================================================================================== * Filename: singly_link.c * Author: RollSto...
分类:
其他好文 时间:
2014-10-04 11:32:46
阅读次数:
162
给定一个数字序列,最多可以删除k个数字(就相当于链表删除操作,删除后左右序列连接),问,和值最大是多少,题目所指的和值为 相等的连续数字的和比如 1 1 2 1 1 1,原本的和值为3(三个连续的1),如果允许删除一次,则我把2删除,则和值为5(5个连续的1)首先,最后能造成结果最大的,只有一个数字...
分类:
其他好文 时间:
2014-08-10 18:02:00
阅读次数:
238
原理:
1.若待删结点在单链表中间,则获取结点下一个结点的值,并复制给待删结点,然后删除待删结点的下一个结点。
2.若待删结点在单链表尾部,则顺序遍历单链表,删除。
3.若链表只有一个结点,正是待删结点,则删除之,并修改相关指针。
核心代码:
//在O(1)时间删除结点。注:必须保证pDel为链表中的结点
void DeleteNode(List *lis...
分类:
其他好文 时间:
2014-07-26 02:56:47
阅读次数:
343
1.一个以递增方式排列的链表,去掉链表中的冗余值。
思路一:设有两个指针p和q,使p不动,q依次往后循环直到p->data不等于q->data,再将中间的冗余数据删除。
思路二:设有两个指针p和q,使p在前,q在后,只要找到一个冗余就删除一个,依次往后删除。
输入的链表:1 3 3 3 3 6 6 8 9 10
删除后的链表:1 3 6 8 9 10
比较两种思路,思路二的想法相比于思路...
分类:
其他好文 时间:
2014-07-19 23:26:29
阅读次数:
318
1.指针的联动
通过两个指针分别指向前驱和后继结点,并在单向链表上进行移动,当指针指向待处理的结点时,该结点的前驱也有指针指向。
2.设有一个无序单向链表,且数据域的值均不相同,使指针pmin指向最小值结点,并使指针prem指向最小值结点的前驱结点:
代码片段:
for(p = head; p; q = p, p = p->next)
{
if(pmin->data > p->...
分类:
其他好文 时间:
2014-07-18 21:26:41
阅读次数:
231