- 博客(79)
- 收藏
- 关注
原创 leetcode47.全排列II:HashSet层去重与used数组枝去重的双重保障
本文详细解析了如何解决包含重复数字的全排列问题,确保生成的所有排列不重复。核心解法采用回溯算法,结合双重去重机制:通过排序预处理和HashSet实现同层去重,避免重复选择相同元素;利用used数组确保每个排列中元素不重复使用。文章通过代码实现、流程模拟和数学证明,展示了双重去重的协同工作原理,并分析了算法复杂度。最后指出常见误区,建议优化方案,强调排序预处理和正确使用HashSet的关键作用。该解法高效解决了排列生成中的重复问题,时间复杂度为O(n×n!),空间复杂度为O(n)。
2025-06-03 16:47:26
252
原创 leetcode46.全排列:回溯算法中元素利用的核心逻辑
从头开始遍历:每次递归都从数组第一个元素开始检查动态过滤:通过动态过滤已使用元素全局遍历策略:每次递归从头遍历所有元素,动态过滤已使用元素状态回退机制:递归返回后撤销选择,确保元素可被后续路径使用终止条件控制:当收集到完整排列时终止递归,避免无效搜索理解这种解法的关键是把握递归过程中状态的变化路径,以及如何在每个节点动态选择未使用元素。这种元素利用策略不仅适用于全排列问题,还可扩展到组合、子集等问题的变种,是回溯算法的核心技术之一。
2025-06-03 16:25:30
769
原创 leetcode491.递增子序列:HashSet同层去重与递增条件的双重保障
每层新建:每层循环新建HashSet,确保同层去重跨层独立:不同层的HashSet互不影响,允许跨层选相同数字HashSet的层内唯一性:每层循环新建HashSet,确保同层不重复选数字递增条件的前向判断:当前数字与子序列最后一个数字比较,维持递增性结果收集策略:子序列长度≥2时收集,满足题目要求理解这种解法的关键是把握HashSet的作用域控制和递增条件的判断逻辑,两者共同作用确保了子序列的合法性和唯一性。这种同层去重策略在处理含重复元素的子序列问题中具有通用性,是回溯算法去重的经典实现。
2025-06-03 15:54:12
615
原创 leetcode90.子集II:排序与同层去重的回溯优化策略
排序预处理:将重复元素相邻排列,为去重提供条件同层重复检测:通过,避免同一层中选择重复元素异层允许策略:不同层的重复元素允许选择,保证子集的完整性理解这种去重逻辑的关键是区分同层与异层的重复元素:同层重复会导致相同子集,必须跳过;异层重复属于不同路径,允许存在。这种策略在组合、排列等含重复元素的问题中具有通用性,是回溯算法去重的经典解决方案。
2025-06-02 20:30:48
945
原创 leetcode78.子集:回溯算法中结果收集时机的精准把握
全程收集:每次递归进入时收集当前子集避免遗漏:确保覆盖从空集到最大子集的所有状态全程收集策略:在每次递归进入时收集当前子集,确保覆盖所有状态元素选择控制:通过start参数避免重复选择,保证元素顺序状态回退机制:递归返回后撤销选择,维护状态一致性理解这种解法的关键是把握递归过程中状态的变化路径,以及如何在每个节点精准收集结果。这种全程收集策略不仅适用于子集问题,还可扩展到组合、排列等问题的变种,是回溯算法的核心技术之一。
2025-06-02 20:09:46
781
原创 leetcode93.复原IP地址:回溯算法中段控制与前导零处理的深度解析
当前段长度限制单段最大长度剩余长度预判避免无效搜索数学意义:确保剩余字符足够分成剩余段数,且每段不超过3字符段长度的双重控制:当前段长度与剩余长度预判结合,大幅减少无效搜索前导零的精准处理:在段起始位置判断,确保段格式合法状态的高效回退:通过记录长度实现状态的精准恢复理解这种解法的关键是掌握递归过程中如何通过剪枝策略减少搜索空间,以及如何高效管理字符串状态。这种段控制方法在处理类似的分段问题(如合法IP生成、字符串分割)中具有广泛的应用价值,是回溯算法在工程实践中的典型应用。
2025-06-02 19:37:30
1173
原创 LeetCode 131.分割回文串:回溯法与回文子串判定的结合
输入:字符串s(长度≤16)输出:所有可能的将s分割为若干个回文子串的方案示例s = "aab"状态定义使用start指针表示当前处理的起始位置使用temp列表记录当前已分割的回文子串选择逻辑枚举从start开始的所有可能子串仅当子串为回文时继续递归优化方向预处理回文状态矩阵,将判定复杂度降为O(1)合理使用StringBuilder减少字符串操作开销掌握这套框架,可解决所有字符串分割相关的组合搜索问题,核心在于递归过程中如何正确维护状态并枚举所有可能的分割点。
2025-06-01 19:25:25
596
原创 LeetCode 40.组合总和II:含重复元素的组合问题去重策略详解
三步核心流程排序数组使重复元素相邻回溯时用start控制元素使用范围通过跳过重复选择关键参数理解start:当前层可选择的最小索引,避免重复组合i > start:确保同一层中相同元素只处理一次i+1:递归时跳过当前元素,实现"每个元素只用一次"拓展应用子集问题(78题)去重排列问题(46题)去重组合总和III(216题)等变体掌握这套去重策略,可系统性解决所有含重复元素的组合搜索问题,核心在于理解"层内去重"与"层间允许"的逻辑差异。
2025-06-01 17:34:11
856
原创 剪枝中的 `break` 与 `return` 区别详解
操作影响范围适用场景break仅终止当前层后续循环排序后剪枝后续无效值return终止整个当前函数确定后续所有分支都无效时continue跳过当前迭代继续下一个需要跳过特定值但继续尝试其他值在组合求和的剪枝中,break利用数组有序性仅跳过确定无效的后续值保留已处理分支的递归最大化减少无效计算同时保证结果完整这就是为什么我们使用break而不是return——它像精准的外科手术刀,只切除病变部位而不伤及健康组织!
2025-06-01 17:29:00
482
原创 LeetCode 39.组合总和:回溯法与剪枝优化的完美结合
理解回溯法"选择-递归-回退"的状态管理模式利用排序实现高效剪枝通过起始位置控制解决元素重复使用与组合唯一性的矛盾掌握这类问题的解法,对理解回溯法在组合、子集等问题中的应用具有重要意义。
2025-06-01 16:49:29
356
原创 leetcode17.电话号码的字母组合:字符串映射与回溯的巧妙联动
字符映射设计:通过数组建立数字与字母的高效映射,简化查找过程。回溯状态管理:利用动态构建组合,并通过递归与回退操作确保枚举所有可能组合。递归终止条件:根据数字字符串的处理进度判断是否完成一个组合的构建,及时保存结果。
2025-05-31 21:03:15
1123
原创 leetcode216.组合总和III:回溯算法中多条件约束下的状态管理
元素和:通过sum变量动态维护,确保快速判断和约束组合长度:通过动态获取,确保满足长度约束元素唯一性:通过start参数控制选择范围,确保元素不重复状态变量同步维护:同时跟踪元素和、组合长度与元素选择双重剪枝优化:利用和约束与长度约束提前终止无效路径动态边界计算:通过数学推导减少搜索空间理解多约束回溯问题的关键在于把握各状态变量间的联动关系,以及如何通过剪枝策略和循环边界优化提升算法效率。这种方法不仅适用于组合总和问题,还可扩展到其他多约束条件下的组合优化问题。
2025-05-31 20:14:45
1118
原创 leetcode77.组合:回溯算法中for循环与状态回退的逻辑艺术
当前组合:用temp列表记录正在构建的组合结果集:用res列表存储所有有效组合选择起点:用s参数避免重复组合状态管理:用temp和res维护当前组合和结果集递归控制:通过s参数避免重复,用循环边界优化搜索回退机制:通过removeLast()实现状态回退,尝试所有可能理解回溯算法的关键在于把握"选择-递归-回退"的循环逻辑,以及如何通过参数设计避免重复计算。这种方法不仅适用于组合问题,还可扩展到排列、子集等多种组合优化问题,是算法设计中处理枚举类问题的核心技术之一。
2025-05-31 19:55:58
1051
原创 leetcode538.把二叉搜索树转换为累加树:反向中序遍历的数值累加之道
反向中序遍历策略:利用BST的有序性,通过反向中序遍历,保证在处理每个节点时,能获取到所有大于等于该节点值的累计和,是实现转换的核心思路。全局变量状态传递:借助全局变量sum记录累计和,在递归调用过程中传递状态,确保每个节点的转换都基于正确的累计值。递归终止与遍历逻辑:严谨的递归终止条件(空节点返回)和清晰的遍历顺序(右-根-左),保证了整棵树的每个节点都能被正确转换,且不破坏树的结构。
2025-05-30 20:16:33
1249
原创 leetcode108.将有序数组转换为二叉搜索树:递归切分中点构建平衡树的智慧
中点切分策略:选取有序数组中点元素作为根节点,从源头上保证左右子树节点数量的平衡性,是构建平衡树的核心策略。递归边界控制:严谨的递归终止条件,确保递归过程正确结束,避免无限循环,并能准确处理各种边界情况,保证树结构的完整性。子数组索引调整:通过合理调整递归时子数组的索引范围,实现数组的精准切分,进而构建出符合BST性质且高度平衡的子树,最终组合成完整的平衡二叉搜索树。
2025-05-30 20:06:05
623
原创 leetcode669.修剪二叉搜索树:递归法利用有序性精准剪枝
路径压缩:根据节点值与区间的关系,每次递归排除一半子树剪枝策略:直接舍弃不符合条件的整棵子树,无需遍历其中节点本算法通过递归方式,充分利用BST的有序性,将修剪操作转化为高效的子树排除问题。数值比较指导剪枝决策:根据节点值与区间边界的关系,直接舍弃无效子树三种剪枝场景处理:覆盖所有可能的节点值分布情况递归实现子树重构:通过递归返回值自然实现树结构的调整理解这种递归解法的关键在于把握BST的数值分布特性,将修剪问题转化为区间定位问题。
2025-05-30 19:21:07
880
原创 leetcode450.删除二叉搜索树中的节点:迭代法巧用中间节点应对多场景删除
摘要:本文深入解析了在二叉搜索树(BST)中删除节点的算法。通过分析BST的特性,提出迭代解法,利用pre和cur指针定位待删除节点,并针对不同场景设计处理逻辑。重点阐述了多场景判断策略,包括待删除节点的位置及其子树情况。以具体示例演示了删除过程,分析了算法的时间复杂度(O(h))和空间复杂度(O(1))。最后总结了核心技术点,包括BST特性运用、多场景处理和指针辅助操作,并指出了常见错误与优化建议,为BST节点删除提供了清晰的解决方案。
2025-05-29 21:35:39
757
原创 leetcode450.删除二叉搜索树中的节点:递归法利用有序性处理四种删除场景
路径确定性:根据值的大小关系,每次递归排除一半子树替换节点选择:右子树最小节点或左子树最大节点保证有序性本算法通过递归方式,充分利用BST的有序性,将删除操作转化为高效的节点定位和子树重构问题。数值比较指导路径选择:根据值的大小关系,每次递归排除一半子树三种删除场景处理:针对不同子树结构,设计相应的替换策略递归实现子树重构:通过递归返回值自然实现树结构的调整理解这种递归解法的关键在于把握BST的数值分布特性,将删除问题转化为有序序列的节点调整。
2025-05-29 21:25:12
872
原创 leetcode701.二叉搜索树中的插入操作:迭代法利用有序性寻找空节点插入点
路径确定性:根据值的大小关系,每次迭代排除一半子树插入点唯一性:通过比较确定唯一的插入路径本算法通过迭代方式,充分利用BST的有序性,将插入操作转化为高效的路径搜索问题。数值比较指导路径选择:根据值的大小关系,每次迭代排除一半子树空节点作为插入终止条件:确保新节点总是插入到叶子节点位置空间优化:迭代实现避免递归栈开销,空间复杂度降至O(1)理解这种迭代解法的关键在于把握BST的数值分布特性,将插入问题转化为寻找空节点的过程。
2025-05-29 20:52:32
834
原创 leetcode235.二叉搜索树的最近公共祖先:迭代法利用有序性高效寻根
路径压缩:每次迭代排除一半子树,直接定位可能的祖先节点避免回溯:无需遍历整棵树,仅沿一条路径向下搜索本算法通过迭代方式,充分利用BST的有序性,将LCA查找问题转化为高效的路径搜索问题。数值比较替代遍历:通过比较节点值大小,直接定位可能的祖先节点线性路径搜索:每次迭代排除一半子树,时间复杂度仅取决于树高空间优化:迭代实现避免递归栈开销,空间复杂度降至O(1)理解这种迭代解法的关键在于把握BST的数值分布特性,将LCA问题转化为区间定位问题。
2025-05-29 20:36:45
968
原创 leetcode236.二叉树的最近公共祖先:递归后序遍历的祖先追踪之道
本文详细解析了使用递归法求解二叉树最近公共祖先(LCA)的问题。算法通过后序遍历自底向上查找目标节点,核心在于递归终止条件的设置和后序处理的逻辑判断。当左右子树分别包含目标节点时,当前节点即为LCA。该解法时间复杂度O(n),空间复杂度O(h),简洁高效。文章还分析了常见误区、边界条件处理,并强调了递归法在树结构问题中的优势。理解这一经典方法有助于解决类似的树结构问题。
2025-05-27 15:14:13
843
原创 leetcode501.二叉搜索树中的众数:递归中序遍历的频率追踪与结果动态更新
有序性利用:BST中序遍历保证相同值连续出现,无需哈希表即可统计频率递归适配:递归的左-中-右顺序天然匹配中序遍历,代码简洁直观特性驱动设计:利用BST中序遍历的有序性,将频率统计复杂度降至O(n)递归流程控制:左-中-右的递归顺序确保节点按升序访问,相同值连续处理动态结果维护:通过频率比较和列表操作,高效处理单众数和多众数场景理解这种递归解法的关键是认识到BST的有序性对频率统计的简化作用。递归的简洁性使得代码逻辑清晰,易于理解和维护,尤其适合树深度较小的场景。
2025-05-27 14:31:42
686
原创 leetcode501.二叉搜索树中的众数:迭代中序遍历的众数追踪与数组动态更新
相同值连续性:BST中序遍历使相同值连续出现简化频率统计:仅需比较前驱节点即可统计频率时间复杂度优化:从O(nlogn)(排序后统计)降至O(n)BST有序性的利用:中序遍历结果的有序性是解决问题的关键双计数器动态更新:通过tempCnt和count动态追踪频率变化结果列表的智能维护:根据频率关系动态调整结果集理解这种迭代法的关键是将树的结构特性(BST的有序性)转化为线性序列的频率统计问题。迭代实现避免了递归栈溢出的风险,适合处理大规模数据。
2025-05-27 13:55:42
480
原创 leetcode530.二叉搜索树的最小绝对差:递归中序遍历的差值追踪之道
二叉搜索树的最小绝对差问题可通过中序遍历递归解决。利用BST中序遍历结果为严格有序序列的特性,只需比较相邻节点的差值即可找到最小值,时间复杂度O(n),空间复杂度O(h)。递归过程中用pre记录前驱节点,动态更新最小差值res。该解法避免了存储完整序列,通过全局变量简化状态传递,巧妙利用有序性质将问题简化为线性扫描。
2025-05-27 13:10:10
946
原创 leetcode530.二叉搜索树的最小绝对差:迭代中序遍历的栈操作与差值追踪
左子树优先:通过"右-中-标记-左"的压栈顺序,利用栈的LIFO特性实现"左-中-右"的访问顺序null标记的分隔作用:区分节点的"待处理"和"已访问"状态,避免复杂的状态标记BST有序性的利用:中序遍历结果的有序性是解决问题的关键,无需暴力比较所有节点对栈的逆向压栈:通过创新的压栈顺序,利用栈的LIFO特性实现中序遍历增量差值计算:仅跟踪前一个节点,动态更新最小差值,空间效率高理解这种迭代法的关键是将树的结构特性(BST的有序性)转化为线性序列的相邻差值问题。
2025-05-27 12:55:53
649
原创 leetcode98.验证二叉搜索树:递归法中序遍历的递增性验证之道
顺序保证:递归顺序天然符合中序遍历的左-中-右顺序状态传递:通过全局变量max传递中序遍历的前驱节点,避免显式传递上下界误区:认为只需当前节点左右子节点满足条件即可// 错误做法:仅比较左右子节点正确逻辑:需保证左子树所有节点 < 当前节点,而非仅左子节点递归顺序的选择:左-中-右的递归顺序天然对应中序遍历,确保前驱节点的正确性状态的隐式传递:通过全局变量max记录前驱节点,避免复杂的参数传递条件的短路效应:左子树或当前节点验证失败时立即返回,提高效率。
2025-05-26 19:46:01
771
原创 leetcode98.验证二叉搜索树:迭代法中序遍历与栈操作的深度剖析
验证二叉搜索树(BST)是算法中的经典问题,要求我们判断给定的二叉树是否为有效的二叉搜索树。左子树上所有节点的值均严格小于根节点的值右子树上所有节点的值均严格大于根节点的值左右子树也必须为二叉搜索树左子树优先:通过“右-中-左”的压栈顺序,利用栈的LIFO特性实现“左-中-右”的访问顺序null标记的分隔作用:区分节点的“待处理”和“已访问”状态,避免复杂的状态标记误区:认为每个节点的左右子节点值直接与当前节点比较即可正确逻辑。
2025-05-26 19:28:42
1099
原创 leetcode700.二叉搜索树中的搜索:迭代法下二叉搜索树性质的高效应用
本文深入解析了二叉搜索树(BST)的迭代搜索算法,通过充分利用BST左小右大的特性实现高效搜索。文章详细解析了迭代解法的实现过程,包括队列数据结构的设计、BST性质在搜索方向选择中的关键作用,以及算法的时间复杂度分析。同时对比了递归与迭代方法的优缺点,指出迭代法更适合处理深度大的BST。通过具体示例演示了搜索流程,并总结了常见误区和优化建议。核心在于理解BST的有序性特性,将其转化为搜索空间的动态剪枝策略,从而将搜索复杂度优化至O(log n)。
2025-05-26 16:42:04
768
原创 leetcode617.合并二叉树:迭代法中层序遍历与队列操作的深度解析
合并二叉树问题的迭代解法通过队列实现层序遍历,同步处理两棵树的对应节点。核心逻辑包括:当两节点都存在时相加节点值并继续处理子节点;若仅一个节点存在则直接合并;使用队列确保处理顺序。算法时间复杂度为O(min(m,n)),空间复杂度为O(min(m,n)),相比递归方法更节省栈空间。关键优化点在于原地修改树结构,避免新建节点。需注意正确处理队列顺序和节点存在状态的三种情况,以确保合并结果的正确性。
2025-05-26 16:08:14
1324
原创 leetcode617.合并二叉树:递归思想下的树结构融合艺术
本文详细解析了合并两棵二叉树的递归解法。核心规则是:对应节点都存在则相加值,否则保留存在的节点。通过深度优先递归,先处理根节点再合并左右子树,利用终止条件处理空节点情况。算法时间复杂度为O(min(m,n)),空间复杂度为O(h)。关键点包括空节点优先处理、根先于子树合并和原地修改策略。文章通过示例演示了递归合并过程,分析了常见误区和边界情况,展示了递归思想在树操作中的高效应用。这种解法代码简洁、效率优良,适用于各种树结构合并场景。
2025-05-26 15:06:16
1142
原创 leetcode654.最大二叉树:递归分治下的最大值索引定位与树构建
本文探讨了如何构建最大二叉树,通过递归分治策略实现。核心步骤包括在子数组中找到最大值作为根节点,递归构建左右子树。使用左闭右开区间高效划分数组,避免数据拷贝。算法时间复杂度为O(n²),空间复杂度O(n)。关键点在于正确划分索引范围和递归终止条件处理。适用于理解分治思想和二叉树构建原理。
2025-05-25 16:07:23
658
原创 leetcode105.从中序与前序遍历序列构造二叉树:前序定根与中序分治的递归重建术
二叉树重建问题的核心在于利用前序和中序遍历的特性:前序确定根节点,中序分割左右子树。通过递归分治策略,每次通过前序遍历的首元素定位根节点,再根据中序遍历中的位置分割子树范围。关键优化在于使用HashMap预处理中序索引,将查找效率从O(n)提升到O(1)。该算法的时间复杂度为O(n),空间复杂度O(n),通过索引传递避免数据拷贝,高效完成了二叉树的精确重建。
2025-05-25 15:14:54
1030
原创 leetcode106.从中序与后序遍历序列构造二叉树:索引定位与递归分治的完美配合
后序特性:最后一个元素是根节点,确保每次递归有且仅有一个根节点中序分割:根节点在中序中的位置将序列分为左右子树,保证子问题独立性本算法通过"后序定根-中序分治-递归构建"的三步策略,完美解决了从中序与后序序列重建二叉树的问题。特性利用后序遍历的根节点特性(最后一个元素)中序遍历的左右子树划分特性索引魔法通过HashMap实现中序值到索引的快速查找利用索引数学关系推导左右子树范围,避免数据拷贝递归分治将原问题分解为左右子树的重建子问题通过索引范围传递,实现O(n)时间复杂度。
2025-05-25 14:42:38
806
原创 leetcode113.路径总和II:递归回溯中路径收集与状态恢复的深度实践
构建:递归进入节点时添加到路径回溯:递归返回时从路径移除核心代码// 进入节点// 递归子树// 离开节点本质:通过列表的添加与移除,模拟路径的延伸与回退本算法通过"递归探索+回溯恢复"的组合策略,实现了对所有符合条件路径的高效收集。问题分解:将"找所有路径"分解为"找左子树路径"和"找右子树路径"状态维护:通过path列表动态维护当前路径,通过targetSum传递剩余目标和适时收集:仅在叶子节点且和为0时收集路径,避免无效操作状态恢复:通过回溯机制,确保不同分支的路径探索互不干扰。
2025-05-25 13:36:48
575
原创 leetcode112.路径总和:递归解法中终止条件与状态传递的深度解析
通过"targetSum -= root.val"将目标和逐层递减把"整树路径和判断"分解为"子树路径和判断"实现了问题的递归分解,符合分治思想本递归算法通过"目标和递减传递+双重终止条件+布尔值短路传递"的组合策略,巧妙解决了路径总和的判断问题。问题分解:将整树路径和问题分解为子树路径和问题,符合递归求解思想状态传递:通过targetSum参数传递剩余目标和,简化问题判断终止策略:空节点和叶子节点的双重判断,确保递归正确终止效率优化:布尔值短路传递,避免无效递归。
2025-05-25 09:35:55
722
原创 leetcode513.找树左下角的值:递归深度优先搜索中的最左节点追踪之道
先左后右的递归顺序是实现"最左"优先的核心递归天然保证左子树先于右子树处理,确保同深度下左节点优先被访问本递归算法通过"深度优先搜索+先左后右顺序+深度追踪"的组合策略,巧妙解决了找树左下角值的问题。深度优先的天然优势:递归天然适合深度优先搜索,能自然追踪节点深度顺序控制的重要性:先左后右的递归顺序是实现"最左"优先的关键状态传递的巧妙设计:通过参数传递深度,全局变量记录结果,实现状态追踪叶子节点的关键作用:仅在叶子节点处判断是否更新结果,提高算法效率。
2025-05-23 18:18:02
842
原创 leetcode513. 找树左下角的值:层序遍历中的深度与顺序控制之道
在寻找树的左下角值的问题中,我们利用层序遍历的特性,巧妙地解决了深度判断和最左节点查找的问题。利用队列实现层序遍历,按层处理节点通过记录每一层的节点数,准确判断当前处理的是哪一层利用队列的FIFO特性,第一个取出的节点即为当前层的最左节点由于层序遍历是按层进行的,最后处理的一层就是最深层,该层的最左节点即为所求这种方法不仅解决了当前的问题,也为解决其他类似的二叉树问题提供了思路。例如,寻找最深层最右节点、计算某一层的节点和等问题,都可以基于层序遍历的思想来解决。
2025-05-23 16:05:40
990
原创 LeetCode 404.左叶子之和的递归求解:终止条件与递归逻辑的深度剖析
LeetCode 404. 左叶子之和要求计算二叉树中所有左叶子节点的值之和。如果一个节点是其父节点的左子节点,并且它本身没有左右子节点,则称为左叶子。最小子问题:明确最底层的返回值(空树、叶子节点返回0);无重复判断:终止条件需覆盖所有无需继续递归的情况。
2025-05-22 21:11:01
1408
原创 LeetCode 404.左叶子之和的迭代求解:栈结构与父节点定位的深度解析
LeetCode 404. 左叶子之和要求计算二叉树中所有左叶子节点的值之和。如果一个节点是其父节点的左子节点,并且它本身没有左右子节点,则称为左叶子。栈结构的双重作用作为遍历容器,实现深度优先搜索;保存父节点,为左叶子判断提供上下文。
2025-05-22 21:08:09
1039
原创 LeetCode 257. 二叉树所有路径的迭代解法:栈的妙用与类型设计深度解析
栈的双重功能既是节点遍历的容器,也是路径记录的载体,通过Object类型实现多数据类型存储。
2025-05-22 20:49:29
932
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人