
每日一题系列
文章平均质量分 70
flybeatles
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
每日一题之链表的相交
判断两个链表是否相交,,若相交,求交点:原创 2017-07-18 16:47:13 · 275 阅读 · 0 评论 -
每日一题之判断一棵二叉树是否是平衡二叉树以及求一颗二叉树的镜像
1,检查一棵树是否是平衡二叉树: 首先我们应该了解什么是平衡二叉树?平衡二叉树:它的左右子树的高度差不会超过1,并且左右字树都是一颗平衡二叉树,它的实现方法有AVL,红黑树等等。 首先以递归的方式来实现: #include #include using namespace std; struct Node//定义这棵树 { int value; Node* left; Node* ri原创 2017-07-28 13:51:45 · 295 阅读 · 0 评论 -
每日一题之求二叉树的高度并销毁一棵二叉树
1,求二叉树的高度:原创 2017-07-28 11:03:44 · 370 阅读 · 0 评论 -
每日一题之二叉树叶子节点的个数及第K层节点的个数
1,求二叉树叶子结点的个数。 分析思想: (1)如果这个树为空,则没有节点,结点数为0. (2)如果这个数只有一个根节点,它的左右子树都为空,则结点数为0. (3)如果这个数有根节点并且它的左右子树不为空,则节点数等于左子树的结点数加上右子树的结点数。 实现代码: #define _CRT_SECURE_NO_WARNINGS #include using namespace std;原创 2017-07-23 15:56:06 · 735 阅读 · 0 评论 -
每日一题之栈的实现
栈:在生活中的很多例子都可以用来看作是一个栈,比如数把椅子叠放成一摞就可以看作是一个栈。为了维护这一叠放形式,对该栈可行的操作只能在其顶部实施,新的椅子只能存放到最顶端,反过来,只有最顶端的椅子才能被拿走。所以我们可以知道栈中的元素都必须遵循“后进先出”原则。我们现在实现放椅子与拿椅子的过程,即入栈(push)与出栈(pop)。栈中的一些接口如图所示: 实现入栈与出栈的原理如图所示:原创 2017-07-20 22:44:01 · 249 阅读 · 0 评论 -
每日一题之删除尾节点并从尾到头打印
1删除一个无头单链表的非尾结点2,从尾到头打印单链表。原创 2017-07-20 16:26:00 · 549 阅读 · 0 评论 -
每日一题之由前序遍历和中序遍历重建二叉树
前序遍历和中序遍历的重建二叉树: 首先构建二叉树的节点: struct TreeNode { int _value; TreeNode* _left; TreeNode* _right; };分析: 在二叉树的前序遍历中,第一个数字总是树的根节点的值,但在中序遍历的序列中,根节点的值在序列的中间,左子输的节点位于根节点的左侧,右子树的节点位于根节点的右侧。所以我们需要扫描一遍中序遍历才原创 2017-07-29 16:05:53 · 394 阅读 · 0 评论 -
每日一题之判断一个节点是否在一棵二叉树中
判断一个节点是否在一颗二叉树中:原创 2017-07-29 14:00:15 · 789 阅读 · 0 评论 -
每日一题之队列与栈的相互实现
用两个栈实现一个队列: 我们应该知道,栈的原理是先进后出,而队列的原理是先进先出。我们通过例子来说明该队列插入和删除元素的过程。首先先插入一个元素a到stack1,这时原创 2017-07-18 23:02:19 · 208 阅读 · 0 评论 -
每日一题之查找单链表的第K个节点
逆置/反转单链表+查找单链表的第K个节点,要求只能便利一次链表。原创 2017-07-17 17:53:23 · 428 阅读 · 0 评论 -
每日一题之合并有序链表,合并后任有序
合并两个有序链表,合并以后的链表任然有序:原创 2017-07-18 15:25:42 · 335 阅读 · 1 评论 -
每日一题之判断链表是否带环
判断链表是否带环?若带环则求环的长度,若带环求环的入口点,并计算以上每个问题的时间复杂度。 分析: 先定义两个指针,指针p1和p2指向链表的头节点。如果链表中的环有n个节点,指针p1先在链表上移动n步,然后两个指针以相同的速度向前移动,当第二个指针指向环的入口节点的时候,第一个指针已经围绕着环兜了一圈,又回到了入口节点。 如图所示,刚开始的时候p1与p2在初始化的时候指向链表的头节点,由于环原创 2017-07-18 16:45:03 · 326 阅读 · 0 评论 -
每日一题之实现二叉树的前序/中序/后序非递归遍历
如图所示: 前序遍历:先访问根节点,再访问左子树,最后访问右子树,上图所示的前序遍历是:8,6,5,7,10,9,11. 中序遍历:先访问左子树,再访问根节点,最后访问右子树,上图所示的中序遍历是:5,6,7,8,9,10,11. 后序遍历:先访问左子树,再访问右子树,最后访问根节点,上图所示的后序遍历是:5,7,6,9,11,10,8. 前序遍历实现的非递归代码:原创 2017-07-28 22:12:25 · 353 阅读 · 0 评论