牛客题霸——NC8 二叉树根节点到叶子节点和为指定值的路径(Javascript)
2021/6/28 17:23:47
本文主要是介绍牛客题霸——NC8 二叉树根节点到叶子节点和为指定值的路径(Javascript),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、题目地址
https://www.nowcoder.com/practice/840dd2dc4fbd4b2199cd48f2dadf930a?tpId=188&&tqId=38567&rp=1&ru=/ta/job-code-high-week&qru=/ta/job-code-high-week/question-ranking
二、具体代码
/* * function TreeNode(x) { * this.val = x; * this.left = null; * this.right = null; * } */ /** * * @param root TreeNode类 * @param sum int整型 * @return int整型二维数组 */ function pathSum( root , sum ) { //1、如果root是空树,直接返回 if(!root) { return []; } //2、定义存放所有可行路径的最后结果数组res let res = []; //3、定义每一条可行路径的结果数组temp let temp = []; //4、定义递归函数dfs,求出最后结果res function dfs(root, sum) { temp.push(root.val); //4.1、当递归到没有子树且当前节点的值等于sum时 if((root.val === sum) && (root.left === null) && (root.right === null)) { //4.2、将当前节点加入到temp数组 /* 注意:当一个数组如何加入到另一个数组,需要浅拷贝 */ res.push(temp.slice()); }else { //4.3、左子树存在,递归左子树 if(root.left) { dfs(root.left, sum - root.val); } //4.4、右子树存在,递归右子树 if(root.right) { dfs(root.right, sum - root.val); } } //4.5、当当前路径的和等于sum时,需要一个一个弹出temp中的值,为下一条路径做准备 temp.pop(); } //5、调用递归函数dfs dfs(root, sum); return res; } module.exports = { pathSum : pathSum };
这篇关于牛客题霸——NC8 二叉树根节点到叶子节点和为指定值的路径(Javascript)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-04TiDB 资源管控的对撞测试以及最佳实践架构
- 2024-07-03万字长文聊聊Web3的组成架构
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现