
113. 路径总和 II
函数定义:定义了一个名为 基础检查:如果根节点为空,直接返回空数组。 初始化栈:建立了一个栈,初始时存储根节点的相关信息,包括节点、节点的值和当前路径数组。 栈处理:进入循环处理栈中的每个节点: 返回结果:循环结束后,返回所有满足条件的路径数组。
发布日期:2021-05-24 19:48:33
浏览次数:20
分类:精选文章
本文共 1041 字,大约阅读时间需要 3 分钟。
下面是优化后的代码描述:
const hasPathSum = function (root, targetSum) { if (!root) { return []; } const results = []; const stack = [[root, root.val, [root.val]]]; while (stack.length > 0) { const [currentNode, currentSum, path] = stack.pop(); if (currentNode.right) { stack.push([currentNode.right, currentSum + currentNode.right.val, [...path, currentNode.right.val]]); } if (currentNode.left) { stack.push([currentNode.left, currentSum + currentNode.left.val, [...path, currentNode.left.val]]); } if (!currentNode.left && !currentNode.right) { if (currentSum === targetSum) { results.push(path); } } } return results;};
代码解释:
hasPathSum
的函数,接收两个参数:二叉树的根节点root
和目标和targetSum
。- 右子节点处理:检查右子节点,如果存在,将右子节点的值和路径添加到栈中,路径采用左后右前顺序。
- 左子节点处理:同理,检查左子节点的值和路径。
- 叶子节点检查:当处理到叶子节点时,检查当前路径的和是否等于目标和,如果是,将路径加入结果数组。
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年05月08日 00时39分24秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
趣图:会算法和不会算法的区别
2019-03-16
区块链会2020再次爆发,先学点DAPP压压惊,跟我一起学《区块链DApp入门实战》
2019-03-16
问题解决28:微信网页授权出现redicet_uri 参数错误
2019-03-16
LeakCanary 中文使用说明
2019-03-16
反转链表,(5)
2019-03-16
Camera (api1)的打开过程
2019-03-16
wxwidgets绘图
2019-03-16
wxwidgets事件处理
2019-03-16
用OpenCv转换原始图像数据到wximage
2019-03-16
codeblocks下wxWidgets编译与配置
2019-03-16
OpenCv+wxwidgets尝试
2019-03-16
wxwidgets自定义事件+调试
2019-03-16
wxwidgets编写多线程程序--wxThread
2019-03-16
三维点云处理
2019-03-17
springboot security 基于redis的session共享(7)
2019-03-17
vue 权限管理 菜单按钮权限控制(7)
2019-03-17
vue 权限管理 主题切换(8)
2019-03-17
Qt 在Excel文件中Chart绘图
2019-03-17
01-webpack5理解及配置
2019-03-17
webpack的安装和使用
2019-03-17