leetcode_day21 该博客记录了作者解决三道二叉树相关算法题的过程。对于530题,利用中序遍历求二叉搜索树的最小绝对差;501题通过中序遍历统计节点频率找出众数;236题采用递归方法寻找二叉树的最近公共祖先。每道题都详细分析了解题思路,并附上了C++实现代码,其中236题特别强调了递归终止条件和单次递归逻辑的重要性。 2024-06-13 #leetcode
leetcode_day20 这篇博客总结了四道二叉树相关算法题的解法:654题通过递归或单调栈构建最大二叉树;617题通过简单递归合并两棵二叉树;700题简单搜索二叉搜索树;98题利用中序遍历验证二叉搜索树是否有效。文章重点分析了最大二叉树的两种解法,并配图说明二叉搜索树的验证方法。 2024-06-11 #leetcode
leetcode_day18 该博客总结了五道二叉树相关算法题的解法,包括找树左下角的值、路径总和及其变体、以及从中序/后序和前序/中序遍历序列构造二叉树。作者提供了递归和迭代两种解法思路,重点讲解了如何通过分割序列进行递归构建,以及迭代法中利用栈和中序指针的巧妙配合。对于构造二叉树的迭代解法,文章通过具体例子详细说明了算法流程,并附有代码实现。 2024-06-09 #leetcode
leetcode_day17 该博客分享了LeetCode三道二叉树相关题目的解题思路和代码实现:110题通过递归判断平衡二叉树,优化了时间复杂度;257题用递归和迭代两种方法获取二叉树所有路径;404题递归求解左叶子节点之和。每道题都给出了清晰的解题步骤和代码示例。 2024-06-07 #leetcode
leetcode_day16 该博客讲解了二叉树和n叉树的最大深度、最小深度以及完全二叉树节点个数的计算方法。对于最大深度,介绍了DFS和BFS两种解法;最小深度则强调需计算到最近叶子节点的距离,给出了递归实现;完全二叉树节点计数则利用其特性优化了普通遍历方法,提供了基于子树深度比较的高效解法。每部分都配有相应代码示例。 2024-06-06 #leetcode
leetcode_day15 这篇博客分享了二叉树相关的三道算法题解法:层序遍历使用队列逐层处理节点;翻转二叉树通过前序遍历迭代交换左右节点;对称二叉树则采用队列交替存储左右节点进行比较。作者提供了清晰的代码实现和解题思路,并推荐了相关学习资源。 2024-06-05 #leetcode
leetcode_day14 该博客介绍了二叉树遍历的三种实现方式:递归遍历、非统一迭代遍历和统一迭代遍历。重点讲解了使用栈模拟递归的迭代方法,并给出了前序、中序遍历的具体代码实现。对于后序遍历,作者建议通过调整前序遍历顺序再反转结果来实现。最后展示了统一迭代遍历的写法,通过压入null标记来实现三种遍历方式的代码统一性,并以后序遍历为例给出完整代码。 2024-06-04 #leetcode
leetcode_day13 该博客分享了LeetCode两道题目的解法:239题通过优先队列维护滑动窗口最大值,形象比喻为"叛军屠城"的更新机制;347题使用小根堆统计前K高频元素,自定义比较器实现频率排序。两题均利用堆结构优化时间复杂度,并提供了详细的代码实现和解题思路分析。 2024-06-03 #leetcode
leetcode_day11 该博客分享了三个栈相关的LeetCode题解:20题通过栈匹配括号判断有效性;1047题用栈消除相邻重复字符;150题利用栈求逆波兰表达式值。作者提供了清晰的解题思路和C++代码实现,特别强调了栈在处理括号和表达式求值中的巧妙应用。 2024-06-01 #leetcode
leetcode_day10 该博客分享了两个LeetCode算法题的解法:用栈实现队列和用队列实现栈。第一篇通过两个栈来回倒换数据实现队列功能,包含push、pop、peek等操作;第二篇则巧妙地使用双端队列来模拟栈的操作,实现了push、pop、top等方法。两篇都提供了完整的C++实现代码。 2024-05-31 #leetcode