树
leetcode题型分类--树
m0_38142029
这个作者很懒,什么都没留下…
展开
-
[树 字符串] 297. 二叉树的序列化与反序列化(DFS、BFS)
[[树 字符串] 297. 二叉树的序列化与反序列化(DFS、BFS)297. 二叉树的序列化与反序列化思路1:BFS思路2:DFS知识点:数组转成队列(数组 -(Arrays.asList)-> 列表 -(构造器)->队列)297. 二叉树的序列化与反序列化题目链接:https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/分类:树、字符串(二叉树序列化:树 → 字符串,二叉树反序列化:字符串 →原创 2020-10-15 00:23:44 · 227 阅读 · 0 评论 -
[二分查找 BST思想] 240. 搜索二维矩阵 II(二分查找可疑行 → 模拟二叉搜索树)
[二分查找 BST思想] 240. 搜索二维矩阵 II(二分查找可疑行 → 模拟二叉搜索树)240. 搜索二维矩阵 II思路1:寻找可疑行范围 + 对可疑行做二分查找思路2:模拟二叉搜索树(推荐)实现代码(递归实现)实现代码(迭代实现,推荐)240. 搜索二维矩阵 II题目链接:https://leetcode-cn.com/problems/search-a-2d-matrix-ii/分类:二分查找:矩阵上做二分查找、通过每一行的min,max缩小可疑行范围、对可疑行做二分查找二原创 2020-10-06 14:22:52 · 135 阅读 · 0 评论 -
[树 遍历的应用] 235.BST的最近公共祖先(利用BST特点做DFS) 236.二叉树的最近公共祖先( 路径栈法、后序遍历法,剑指offer 68 - II)
[剑指offer 68 - II] 二叉树的最近公共祖先(递归思路整理)1 题目分析2 思路1:后序遍历 + 递归思路整理1、确定递归函数的功能、返回值2、后序遍历过程分析3、算法实现1 题目分析剑指 Offer 68 - II. 二叉树的最近公共祖先 236. 二叉树的最近公共祖先这题和68-1相比,二叉搜索树换成了一般的二叉树,其他条件和要求不变。因此68-1的思路在这里不再适用,要在一般二叉树里找到指定的节点,最差情况下需要遍历所有节点才能找到,无法根据待查节点和root的大小关系自主原创 2020-10-03 23:10:55 · 123 阅读 · 0 评论 -
[二叉搜索树BST] 230. BST中第K小的元素(中序遍历、二分查找) )
[二叉搜索树] 230. 二叉搜索树中第K小的元素(中序遍历、二分查找)230. 二叉搜索树中第K小的元素思路1:中序遍历查找(迭代实现)思路2:二分查找(统计节点个数 + 分治)230. 二叉搜索树中第K小的元素题目链接:https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst/分类:树:二叉搜索树、中序遍历查找第k小元素查找:二分查找思路1:中序遍历查找(迭代实现)利用二叉搜索树的特点,中序遍历二叉搜索树,到达最原创 2020-10-02 21:01:05 · 181 阅读 · 0 评论 -
[树遍历的应用] 226. 翻转二叉树(递归DFS、迭代BFS)
[树遍历的应用] 226. 翻转二叉树(递归DFS、迭代BFS)226. 翻转二叉树思路1:递归(DFS)实现遇到的问题:特殊用例的处理思路2:迭代(BFS)226. 翻转二叉树题目链接:https://leetcode-cn.com/problems/invert-binary-tree/分类:树(翻转二叉树、树的遍历:递归DFS,迭代BFS + 在遍历过程中翻转)思路1:递归(DFS)算法流程:鲁棒性验证,快速处理边界用例创建backup节点用于存放根节点,用于返回镜像原创 2020-09-30 18:29:37 · 161 阅读 · 0 评论 -
[树 数学] 222. 完全二叉树的节点个数(遍历统计个数 → 利用完美二叉树特点统计个数)
[树 递归] 222. 完全二叉树的节点个数(利用完美二叉树的特点统计个数)222. 完全二叉树的节点个数思路1:直接递归思路2:利用完美二叉树的特点222. 完全二叉树的节点个数题目链接:https://leetcode-cn.com/problems/count-complete-tree-nodes/分类:树(遍历、完美二叉树:计算高度、统计节点个数)递归(利用完美二叉树特点寻找满二叉子树,递归处理另一棵子树)思路1:直接递归递归统计节点总数,思路简单,但是没有用到完美二叉树的原创 2020-09-30 13:53:05 · 192 阅读 · 0 评论 -
[设计数据结构] 208. 实现前缀树Trie(节点:Trie类/边:类内数组、终结点区分单词和前缀)211. 添加与搜索单词(前缀树的应用)212. 单词搜索 II(回溯法 + 前缀树)
[设计数据结构] 208. 实现前缀树Trie(节点:Trie类/边:类内数组、终结点区分树内的单词和前缀)208. 实现 Trie (前缀树)题目分析什么是前缀树?前缀树基本函数的实现要求算法设计1、设计节点和边的数据结构2、设计三个功能函数insert(word)search(word):(依赖终结点)startsWith(prefix)实现遇到的问题1、如何创建前缀树的根节点root?(在类里获取这个类的实例化对象)2、编写insert时忽略了已经存在的结点实现代码208. 实现 Trie (前缀树原创 2020-09-22 14:47:37 · 233 阅读 · 0 评论 -
[树层次遍历的应用] 116. 117. 填充每个节点的下一个右侧节点指针 I II (队列层次遍历、迭代)
[树层次遍历的应用] 116. 117. 填充每个节点的下一个右侧节点指针 I II (队列层次遍历、迭代) 116.填充每个节点的下一个右侧节点指针(完美二叉树)思路1:队列层次遍历 + 找出每一层的最后一个节点思路2:迭代 + 遍历上一层链表117. 填充每个节点的下一个右侧节点指针 II (一般二叉树)分析(同116思路2)1、迭代的终止条件2、当前层的链表头结点head的选取3、节点next域的填充实现代码116.填充每个节点的下一个右侧节点指针(完美二叉树)题目链接:https://leetc原创 2020-11-09 13:11:04 · 186 阅读 · 0 评论 -
[树遍历的应用]110. 平衡二叉树(后序遍历)111.二叉树的最小深度(前序遍历)114. 二叉树展开为链表(前序遍历:迭代、morris)
[树遍历的应用 leetcode]110. 平衡二叉树(后序遍历)110. 平衡二叉树(后序遍历、剪枝)思路1:后序遍历实现时遇到的问题:特殊用例[]实现代码思路1优化:短路或 + if上写赋值语句实现代码110. 平衡二叉树(后序遍历、剪枝)题目链接:https://leetcode-cn.com/problems/balanced-binary-tree/分类:树、递归(后序遍历)这题是二叉树遍历的应用。递归练习题。思路1:后序遍历根据后序遍历的特点:先左右,再根节点,所以在处理根节点时就原创 2020-11-09 13:10:28 · 196 阅读 · 0 评论 -
[树] 101. 对称二叉树(前序遍历 + 方法优化)
[树 leetcode] 101. 对称二叉树(前序遍历 + 方法优化)第101. 对称二叉树思路1:左右同步深度优先遍历(前序遍历 - 递归实现,遍历2次)实现代码思路1 优化:只遍历一次实现代码思路2:左右同步深度优先遍历(前序遍历 - 迭代实现,遍历2次)第101. 对称二叉树题目链接:https://leetcode-cn.com/problems/symmetric-tree/分类:树(二叉树)、前序遍历(递归、迭代)、算法优化思路1:左右同步深度优先遍历(前序遍历 - 递归实现,遍历2原创 2020-10-23 14:36:15 · 439 阅读 · 0 评论 -
[二叉搜索树(递归练习)]96.95.不同的二叉搜索树 I II (动态规划、递归)
[二叉搜索树(递归练习)leetcode]96.95.不同的二叉搜索树 I II (动态规划、递归)95. 不同的二叉搜索树 II(很好的递归练习题)题目分析思路:递归法算法设计1、如何用递归构建一棵二叉搜索树?2、如何递归构建多个二叉树?实现代码96. 不同的二叉搜索树题目分析思路1:动态规划 + 分治法1、状态设置 + 状态转移方程2、如何体现分治思想?3、dp数组实现时遇到的问题为什么dp[0]要设置为1?实现代码95. 不同的二叉搜索树 II(很好的递归练习题)题目链接:95. 不同的二叉搜索树原创 2020-10-23 14:33:43 · 134 阅读 · 0 评论 -
[二叉树遍历递归和迭代实现整理]144. 二叉树的前序遍历 94. 二叉树的中序遍历 145. 二叉树的后序遍历
二叉树遍历的递归和迭代实现前序遍历概念 + 举例习题递归实现迭代实现写法1:只有右孩子入栈前序遍历概念 + 举例前序遍历:对于当前节点,先输出该节点,然后输出他的左孩子,最后输出他的右孩子。例如:前序遍历序列:[1,2,4,6,7,3,5]习题题目链接:144. 二叉树的前序遍历递归实现二叉树遍历的递归实现都很简单,只需要按上面所述的前序遍历的概念出发编写代码即可:先树根,然后左子树,然后右子树。每棵子树递归。在递归函数最前面设置好递归出口:当root == null,退出当前递归原创 2020-10-23 14:35:11 · 188 阅读 · 0 评论