给定两个有序链表的头指针 head1 和 head2,打印两个链表的公共部分 思路: 有序嘛, 如果head1 的值小于 head2, head1往下移动 如果head2的值小于head1,head2往下移动 如果相等,打印这个值,然后同时向下移动 两个有一个为null, 整个过程停止 ...
分类:
编程语言 时间:
2017-09-09 12:55:16
阅读次数:
155
题目: Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 题解: 和我上面一篇将有序链表转成二叉排序树中用哈希表解的方法是一样的。基本思路:链表中间那个节 ...
分类:
编程语言 时间:
2017-07-31 10:05:20
阅读次数:
174
package com.wyl.linklist; /** * 合并两个链表 * @author wyl */ public class MergeLinkList { /** * 内部类,链表节点的结构 * @author wyl * */ public static class Node{ pr... ...
分类:
其他好文 时间:
2017-07-24 16:21:29
阅读次数:
117
1.一个以递增方式排列的链表,去掉链表中的冗余值。 思路一:设有两个指针p和q。使p不动,q依次往后循环直到p->data不等于q->data,再将中间的冗余数据删除。 思路二:设有两个指针p和q,使p在前,q在后,仅仅要找到一个冗余就删除一个,依次往后删除。 输入的链表:1 3 3 3 3 6 6 ...
分类:
其他好文 时间:
2017-07-14 18:46:24
阅读次数:
135
本文转载自:http://www.cnblogs.com/yangecnu/p/Introduce-B-Tree-and-B-Plus-Tree.html 维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(log n)的时间复杂度 ...
分类:
其他好文 时间:
2017-07-05 18:03:29
阅读次数:
247
本文摘抄于《Redis内部数据结构详解-skiplist》 一、skiplist的由来 skiplist,顾名思义,首先它是一个list。实际上,它是在有序链表的基础上发展起来的。 我们先来看一个有序链表,如下图(最左侧的灰色节点表示一个空的头结点): 在这样一个链表中,如果我们要查找某个数据,那么 ...
分类:
其他好文 时间:
2017-06-26 12:43:49
阅读次数:
190
LeetCode解题之Remove Duplicates from Sorted List 原题 删除一个有序链表中反复的元素,使得每一个元素仅仅出现一次。 注意点: 无 样例: 输入: 1->1->2->3->3 输出: 1->2->3 解题思路 顺序遍历全部节点,假设当前节点有后一个节点,且它们 ...
分类:
其他好文 时间:
2017-06-26 11:32:23
阅读次数:
148
有序链表: 按关键值排序。删除链头时,就删除最小(/最大)的值,插入时,搜索插入的位置。 插入时须要比較O(N),平均O(N/2),删除最小(/最大)的在链头的数据时效率为O(1), 假设一个应用须要频繁的存取(插入/查找/删除)最小(/最大)的数据项,那么有序链表是一个不错的选择 优先级队列 能够 ...
分类:
编程语言 时间:
2017-06-17 18:26:11
阅读次数:
138
本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。 函数接口定义: List Merge( List L1, List L2 ); 其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { ElementTyp ...
分类:
其他好文 时间:
2017-06-08 13:14:43
阅读次数:
163
要求:讲两个有序链表合并成一个有序链表,结果链表仍使用原来两个链表的存储空间,不占用其他存储空间,表中允许有重复的数据。 算法:(1)指针pa和pb初始化,分别指向连个链表La和Lb的第一个节点 (2)Lc的结点取值为La的头结点 (3)指针pc初始化,指向Lc的头结点 (4)当指针Pa和Pb均未达 ...
分类:
其他好文 时间:
2017-05-29 19:11:48
阅读次数:
236