LeetCode-树
关于树题目的刷题
hclbeloved
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Aho-Corasick(AC自动机)
1 介绍 trie树:LeetCode-Trie树_hclbeloved的博客-优快云博客 AC 自动机算法,全称是 Aho-Corasick 算法。其实,Trie 树跟 AC 自动机之间的关系,就像单串匹配中朴素的串匹配算法,跟 KMP 算法之间的关系一样,只不过前者针对的是多模式串而已。所以,AC 自动机实际上就是在 Trie 树之上,加了类似 KMP 的 next 数组,只不过此处的 next 数组是构建在树上的。 2 实现 // Trie4AhoCoras...原创 2022-02-18 11:13:52 · 1004 阅读 · 0 评论 -
LeetCode-Trie树
1 Trie树 1.1 简介 Trie 树,也叫“字典树”。顾名思义,它是一个树形结构。它是一种专门处理字符串匹配的数据结构,用来解决在一组字符串集合中快速查找某个字符串的问题。 1.2 实现 Trie 树是一个多叉树,具体实现如下: // TrieTree.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <string.h> class Trie { public: Trie() { roo...原创 2022-02-16 14:14:25 · 255 阅读 · 0 评论 -
LeetCode-树-中序遍历(DFS)-二叉搜索树中两个节点之和
1 题目 剑指 Offer II 056. 二叉搜索树中两个节点之和 653. 两数之和 IV - 输入 BST 2 代码实现 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {}原创 2022-02-09 13:51:15 · 400 阅读 · 0 评论 -
LeetCode-树-中序遍历(DFS)-二叉搜索树迭代器
1 题目 173. 二叉搜索树迭代器 剑指 Offer II 055. 二叉搜索树迭代器 2 代码实现 2.1 递归版本 class BSTIterator { private: queue<TreeNode*> q; public: BSTIterator(TreeNode* root) { dfs(root); } int next() { int val = q.front()->val;原创 2022-02-09 13:38:36 · 744 阅读 · 0 评论 -
LeetCode-树-中序遍历(DFS)-所有大于等于节点的值之和
1 题目 剑指 Offer II 054. 所有大于等于节点的值之和 538. 把二叉搜索树转换为累加树 1038. 把二叉搜索树转换为累加树 2 代码实现 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), ri原创 2022-02-08 19:20:19 · 277 阅读 · 0 评论 -
LeetCode-树-中序遍历(DFS)-二叉搜索树中的中序后继
1 题目 剑指 Offer II 053. 二叉搜索树中的中序后继 类似题目:LeetCode-树-中序遍历(DFS)-展平二叉搜索树_hclbeloved的博客-优快云博客 2 代码实现 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(原创 2022-02-08 18:52:02 · 155 阅读 · 0 评论 -
LeetCode-树-中序遍历(DFS)-展平二叉搜索树
1 题目 剑指 Offer II 052. 展平二叉搜索树 897. 递增顺序搜索树 2 代码实现 class Solution { public: TreeNode* increasingBST(TreeNode* root) { TreeNode *newRoot = NULL, *pre = NULL; queue<TreeNode*> q; dfs(root, q); while (!q.empty())原创 2022-02-08 17:23:36 · 272 阅读 · 0 评论 -
LeetCode-树-DFS-二叉树中的最大路径和
1 题目 124. 二叉树中的最大路径和 剑指 Offer II 051. 节点之和最大的路径 2 解答 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * Tree原创 2022-02-08 12:15:49 · 324 阅读 · 0 评论 -
LeetCode-树-前序遍历(DFS)-二叉树的序列化与反序列化
1 题目 剑指 Offer II 048. 序列化与反序列化二叉树 297. 二叉树的序列化与反序列化 2 实现 // 此时使用的是 DFS // 参考链接:https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/solution/shou-hui-tu-jie-gei-chu-dfshe-bfsliang-chong-jie-f/ class Codec { public: // Encodes a tree原创 2022-01-30 13:43:13 · 411 阅读 · 0 评论 -
LeetCode-树-层序遍历(BFS)-二叉树的序列化与反序列化
1 二叉树的序列化 序列化参考:请问 [1, null, 2, 3] 在二叉树测试用例中代表什么 - 力扣(LeetCode) - 支持 2 题目 剑指 Offer II 048. 序列化与反序列化二叉树 297. 二叉树的序列化与反序列化 2.1 序列化 null的作用就是避免歧义,也就是起到占位符的作用,这样能够明确到底是其父节点的左孩子,还是右孩子。 当前层如果不是最后一层,最后一个非NULL元素(比如上图中的3)后面...原创 2022-01-30 12:44:13 · 1139 阅读 · 0 评论 -
LeetCode-树-中序遍历(也就是DFS)
1 二叉树剪枝 814. 二叉树剪枝 剑指 Offer II 047. 二叉树剪枝 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x)原创 2022-01-26 23:30:59 · 197 阅读 · 0 评论 -
LeetCode-树-层序遍历
1 二叉树每层的最大值 515. 在每个树行中找最大值 剑指 Offer II 044. 二叉树每层的最大值 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * Tre原创 2022-01-25 13:38:47 · 95 阅读 · 0 评论 -
LeetCode-树-层序遍历-完全二叉树插入器
1 简介 完全二叉树特点: (1)叶子结点都在最底下的两层; (2)最后一层的叶子结点都靠左排列,即中间没有空洞; (3)除最后一层外,其他层的节点个数都要达到最大; 2 相关题目 2.1 完全二叉树插入器 919. 完全二叉树插入器 剑指 Offer II 043. 往完全二叉树添加节点 这里实际上就是进行了层序遍历,代码具体如下: class CBTInserter { privat...原创 2022-01-25 11:26:56 · 215 阅读 · 0 评论
分享