数据结构与算法基础
--FGC--
书山有路勤为径,学海无涯苦作舟
展开
-
二叉搜索树与双向链表
二叉搜索树与双向链表 时间限制:1秒 空间限制:32768K 题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 题目分析 下面给出一个二叉搜索树转换为双向链表的手工完成图。 代码实现 /* struct TreeNode { int val; struct TreeNode *l...原创 2018-07-20 16:49:58 · 190 阅读 · 0 评论 -
合并两个排序的链表
合并两个排序的链表 时间限制:1秒 空间限制:32768K 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 题目分析 (1)首先建立一个指向新链表头的指针pHead (2)然后声明一个始终指向新链表尾部的指针p (3)如果两个链表均不为空,则将p指向数值小的节点,然后p往后移动一个节点,同时,小的节点所在的链表...原创 2018-07-20 21:01:19 · 111 阅读 · 0 评论 -
从上往下打印二叉树
从上往下打印二叉树 时间限制:1秒 空间限制:32768K 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 题目分析 本题考察层次遍历二叉树,通过一个队列存储树的节点。 代码实现 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *rig...原创 2018-07-20 22:23:56 · 109 阅读 · 0 评论 -
数据流中的中位数
数据流中的中位数 时间限制:1秒 空间限制:32768K 题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。 题目分析 (1)声明两个堆min...原创 2018-07-21 10:20:20 · 521 阅读 · 0 评论