随笔分类 -  数据结构

摘要:先介绍排序二叉树。 排序二叉树 定义: 1.若左子树非空,则左子树的所有节点的值小于它的根节点。 2.若右子树非空,则右子树的所有节点的值大于它的根节点。 3.左右子树也分别为排序二叉树。 意义:排序二叉树的作用是在插入或者构建这棵树时,就是在对一个无序数列的一个排序过程!并且采用了二分思想,但是一 阅读全文
posted @ 2018-12-13 20:08 青山新雨 阅读(356) 评论(0) 推荐(0) 编辑
摘要:思路:就是树状数组的模板题,利用的就是单点更新和区间求和是树状数组的强项时间复杂度为m*log(n) 没想到自己以前把这道题当线段树的单点更新刷了。 树状数组: 线段树 阅读全文
posted @ 2018-12-06 21:48 青山新雨 阅读(169) 评论(0) 推荐(0) 编辑
摘要:https://vjudge.net/problem/HDU-1251 标准的字典树模板题: 也注意一下输入方法: 阅读全文
posted @ 2018-12-06 20:26 青山新雨 阅读(242) 评论(0) 推荐(0) 编辑
摘要:链表版:空间小,时间大。 数组版:空间大,时间小 良心模板 阅读全文
posted @ 2018-12-06 20:25 青山新雨 阅读(252) 评论(0) 推荐(0) 编辑
摘要:#include #include #include struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; class Solution { public: int ... 阅读全文
posted @ 2018-12-03 11:06 青山新雨 阅读(216) 评论(0) 推荐(0) 编辑
摘要:思路:创建一个节点,谁小就放谁,肯定会有一个链先结束,则把后面的链直接连上即可。 阅读全文
posted @ 2018-11-21 17:04 青山新雨 阅读(185) 评论(0) 推荐(0) 编辑
摘要:题意略: 思路:先造一个点它与所有点的值都不同,那么只要后面两个点的值相同就开始判断后面是不是也相同,最后将相同的拆下来就可以了。 阅读全文
posted @ 2018-11-21 16:26 青山新雨 阅读(206) 评论(0) 推荐(0) 编辑
摘要:题意略: 思路都在注解里: 阅读全文
posted @ 2018-11-21 16:15 青山新雨 阅读(263) 评论(0) 推荐(0) 编辑
摘要:题意略: 说一下自己的两个坑点:当为空表或者只有一个节点时,应该返回head而不是NULL 阅读全文
posted @ 2018-11-21 14:07 青山新雨 阅读(285) 评论(0) 推荐(0) 编辑
摘要:题意:前序遍历二叉树 前序遍历 根->左子树->右子树 先递归解法: 非递归方法: 在了解非递归之前,我们先了解一下递归在计算机中是怎样实现的。 递归,说白了就是将函数指针放入栈中!然后根据先进后出的原则进行递归! 其实非递归方法就是在模拟递归方法!想一下!如何将遍历到左子树之后又如何遍历到右子树呢 阅读全文
posted @ 2018-11-04 17:04 青山新雨 阅读(170) 评论(0) 推荐(0) 编辑
摘要:题意:输出一个二叉树的最小深度。 思路:搜索一下就行了。 注意:搜索的时候,是比较每个子树的左右子树的大小,每个子树的深度要加上根节点! 兄弟题 maximum-depth-of-binary-tree 题意:输出最大的二叉树的深度 阅读全文
posted @ 2018-11-04 13:45 青山新雨 阅读(152) 评论(0) 推荐(0) 编辑
摘要:class Solution { public: bool hasCycle(ListNode *head) { if (head == NULL) return NULL; //空表 ListNode *slow = head; ListNode *fast = head; while (fast&&fast... 阅读全文
posted @ 2018-11-01 20:03 青山新雨 阅读(266) 评论(0) 推荐(0) 编辑
摘要:题意:略. 这个题最关键的点在于后面,如何找到循环开始的节点。 第一阶段,先用快慢指针找到相遇的节点C。(至于为什么,了解一下欧几里德拓展解决二元不定方程。)A是表头。B是开始循环的位置。 第一次阶段的公式是: 2(x+y)=x+y+n(y+z); 注意一下:n表示快指针比慢指针多跑了n圈! 那么两 阅读全文
posted @ 2018-11-01 19:51 青山新雨 阅读(303) 评论(0) 推荐(0) 编辑
摘要:题意: 给你一个单链表 a1 a2 a3 a4 a5....an 让你变成 a1 an a2 an-1 a3 an-2 .... 这里牵涉到,单链表的倒置和两个单链表的合并。 阅读全文
posted @ 2018-10-31 21:58 青山新雨 阅读(201) 评论(0) 推荐(0) 编辑
摘要:思路: 相信大家对数组的归并排序非常了解,不了解的可以自己百度。本博客只是对单链表的归并排序中的小细节进行阐述. 这个图,就是一种分治的方式,当递归到最底层时,对两个数进行排序,当回到上一层,其实就得到了,两个有序的序列,然后再对这两个序列进行排序并合并成一个新的序列。这样一层一层的重复相同的操作, 阅读全文
posted @ 2018-10-31 17:34 青山新雨 阅读(2410) 评论(0) 推荐(0) 编辑

more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示