抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

最近刷题经常使用到哈希表。 哈希表 官方定义: 哈希表是根据关键码的值而直接进行访问的数据结构。 数组其实就是一张最基础的哈希表。 它的下标数字作为键(key)对应一个值(value)。 比如: a[key] = value; 键不能相同,但值可以相同。 哈希表可以用来快速检索一个元素。 比如我们拿学生的名字作为键(key),ta所在的宿舍作为值(key)。 我们要查询一个学生在哪个宿...

数组 我们都知道访问数组的一个元素可以通过下标访问。 例如 123456int a[5] = { 1,2,3,4,5 }; //初始化printf("%d %d", a[0], a[1]);-----output:1 2 通过下标我们访问了数组a的第0个和第1个元素。 但是数组的下标访问本质是编程语言的一个语法糖。 数组的本质是开辟一串连续的空间用...

当要求空间复杂度为O(1),即只使用常量额外空间时,快慢指针对于处理链表中删除重复值和判断是否有环尤为重要。 快慢指针也可称为龟兔赛跑算法。 定义一个快指针,一个慢指针,它们的移动速度是不同的,根据这个速度差,我们就能完成一些工作了。 删除重复值 例题 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 思考 首先这个链表是有...

二叉搜索树是有序的。 它可以完成搜索,插入以及删除等操作。 搜索 例题 思考 因为二叉搜索树有以下几个性质。 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉搜索树。 所以它的搜索效率就跟二分搜索一样很快。 使用迭代法很快就能写出来。 代码 12345678910TreeN...

构造 前序和中序可以唯一确定一棵二叉树。 后序和中序可以唯一确定一棵二叉树。 前序和后序不能唯一确定一棵二叉树! 没中序遍历就无法分割了。 前序遍历&中序遍历构造 分析 首先要牢记各个遍历方法的顺序。 前序遍历是:根节点->左子树->右子树 中序遍历是:左子树->根节点->右子树 所以前序遍历的第一个元素就是整个二叉树的根节点。 同理,在中序遍历中找到...

前言 最近经常刷到二叉树的题,那么好好把二叉树的相关知识点都过一下吧。 本文参考了代码随想录关于二叉树的介绍。原文链接 分类 满二叉树 一个二叉树除了叶节点外每个节点都有两个子节点,且叶节点在同一层的二叉树。就是看上去都是满的。 深度为kkk。节点数量就是2k−12^k-12k−1个。 完全二叉树 除了最底层节点没填满外,其他节点都是满的。且最底层节点必须从左到右连续! ...