
Tree
分享一些关于数据结构和算法的心得,以及做过的题目踩的坑。
Mamba_ZJP
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
前序遍历/二叉树/LeetCode 5418
题目链接:https://leetcode-cn.com/problems/pseudo-palindromic-paths-in-a-binary-tree/ 要想排列成为回文,那么这个路径上出现过奇数次的数不能超过1个,不然无法构成回文。 第一个想法,用一个集合在树上记录,如果集合出现了root->val,那么就erase,否则insert,这样到最后如果集合里的元素大于1个,说明不止一个数出现了偶数次。 注意题目的细节:结点的值是从1~9,我们可以直接设置1至9的计数器,而不用选择集合。 .原创 2020-05-24 14:22:12 · 107 阅读 · 0 评论 -
前序/中序遍历/树的重建/LeetCode 105
题目链接:https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/ 首先,要明白preorder和inorder的关系,preorder中的第一个往往是那颗(子)树的根节点,在inorder中就可以把序列分为左右两半(左树、右树)。 这里选择前序遍历构造树:也就是先构造根节点,再构造左子树和右子树。 如何构造:首先我们知道preorder的第一个就是根节点,而不知道下一个结点究竟.原创 2020-05-22 10:58:03 · 117 阅读 · 0 评论 -
LeetCode 572/前序遍历
主体思路就是,前序遍历这颗树,遇到值相同的,用另一个函数判断是否完全一致,不完全一致继续遍历(因为后面可能才出现子树相同的结构),否则返回true。 判断函数,很多细节见代码。 class Solution { public: bool isSubtree(TreeNode* s, TreeNode* t) { if(s == NULL) return false; ...原创 2020-05-07 23:38:03 · 126 阅读 · 0 评论 -
LeetCode 98.验证二叉搜索树
此题来自:https://leetcode-cn.com/problems/validate-binary-search-tree/submissions/ 二叉搜索树的主要特征就是:中序遍历元素有序。 两种思路: 将整个树中序遍历一遍,把所有元素都储存下来,然后再线性扫一遍这个数组,看是否满足有序条件。TC:O(n),MC:O(n)。 想办法优化空间损耗,那就是边中序遍历边判断,中序遍历时每个...原创 2020-05-05 14:03:53 · 112 阅读 · 0 评论 -
漫画解读赫夫曼树/赫夫曼编码
什么是“赫夫曼树” 什么是“赫夫曼编码”转载 2020-04-23 16:52:23 · 706 阅读 · 0 评论