![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
LeetCode-树
关于树题目的刷题
hclbeloved
这个作者很懒,什么都没留下…
展开
-
Aho-Corasick(AC自动机)
1 介绍trie树:LeetCode-Trie树_hclbeloved的博客-CSDN博客AC 自动机算法,全称是 Aho-Corasick 算法。其实,Trie 树跟 AC 自动机之间的关系,就像单串匹配中朴素的串匹配算法,跟 KMP 算法之间的关系一样,只不过前者针对的是多模式串而已。所以,AC 自动机实际上就是在 Trie 树之上,加了类似 KMP 的 next 数组,只不过此处的 next 数组是构建在树上的。2 实现// Trie4AhoCoras...原创 2022-02-18 11:13:52 · 911 阅读 · 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 · 184 阅读 · 0 评论 -
LeetCode-树-中序遍历(DFS)-二叉搜索树中两个节点之和
1 题目剑指 Offer II 056. 二叉搜索树中两个节点之和653. 两数之和 IV - 输入 BST2 代码实现/** * 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 · 332 阅读 · 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 · 679 阅读 · 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 · 221 阅读 · 0 评论 -
LeetCode-树-中序遍历(DFS)-二叉搜索树中的中序后继
1 题目剑指 Offer II 053. 二叉搜索树中的中序后继类似题目:LeetCode-树-中序遍历(DFS)-展平二叉搜索树_hclbeloved的博客-CSDN博客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 · 63 阅读 · 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 · 217 阅读 · 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 · 247 阅读 · 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 · 339 阅读 · 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 · 1054 阅读 · 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 · 147 阅读 · 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 · 56 阅读 · 0 评论 -
LeetCode-树-层序遍历-完全二叉树插入器
1 简介完全二叉树特点:(1)叶子结点都在最底下的两层;(2)最后一层的叶子结点都靠左排列,即中间没有空洞;(3)除最后一层外,其他层的节点个数都要达到最大;2 相关题目2.1 完全二叉树插入器919. 完全二叉树插入器剑指 Offer II 043. 往完全二叉树添加节点这里实际上就是进行了层序遍历,代码具体如下:class CBTInserter {privat...原创 2022-01-25 11:26:56 · 166 阅读 · 0 评论