当前位置: 首页 > news >正文

leetcode113-路径总和II

leetcode 113

在这里插入图片描述

思路

本题可以参考:求二叉树的所有路径
方法是很相似的,只不过我们这里多了个条件,需要路径和等于目标值的才能作为结果加入,所以每次遍历需要传入目标值,最开始传入目标值,然后每到一个节点就减去这个节点的值,最终到叶子节点的时候,如果值为0,说明这条路径的和是等于目标值的,所以可以放入result中
需要特别注意⚠️的是:最终存放结果的时候不可以直接result.push(path) 因为后序还会对path进行操作,push或者pop操作都是直接在修改path,如果result这里直接push(path),那么这时候放入的是数组的地址,后面对path的更改都会影响到它,所以需要生成一个新的地址来存放,以免结果受影响

实现

var pathSum = function (root, targetSum) {
    if (!root) return [];
    let result = [];
    const deep = (node, path, target) => {
        const item = target - node.val;
        path.push(node.val)
        if (!node.left && !node.right) {
            if (item === 0) {
                // 这里需要注意,要生成一个新的数组,而不是直接使用path
                result.push([...path])
            }
        }
        if (node.left) {
            deep(node.left, path, item)
            path.pop()
        }
        if (node.right) {
            deep(node.right, path, item)
            path.pop()
        }
    }
    deep(root, [], targetSum)
    return result;
};

相关文章:

  • STM32---FreeRTOS中断管理试验
  • WebP2P技术在嵌入式设备中的应用:EasyRTC音视频通话SDK如何实现高效通信?
  • Baklib内容中台赋能企业智管
  • FastGPT 源码:如何实现 “问题优化“
  • 【Canny 边缘检测详细讲解】
  • 深度学习-大白话解释循环神经网络RNN
  • C高级linux
  • 基于51单片机的汽车防撞系统proteus仿真
  • 《人工智能与民生》: llama3.2-vision 的初稿
  • React Native 实现滑一点点内容区块指示器也滑一点点
  • linux启程指南——体悟虚拟开源天地的漫步翩翩
  • <03.04>八股文
  • HttpServletRequest、ServerHttpRequest 和 ServerWebRequest作用详解
  • K8S学习之基础九:pod的生命周期
  • Ubuntu20.04双系统安装及软件安装(四):国内版火狐浏览器
  • linux应用:errno、perror、open、fopen
  • StableDifussion初学(模型选择区)
  • 除了DeepSpeed,在训练和推理的时候,显存不足还有什么优化方法吗?FlashAttention 具体是怎么做的
  • Gartner发布安全运营指标构建指南
  • SpringMVC 的配置及拦截器
  • lamp 网站建设论文/制作自己的网页
  • 网站建设公司格/奇零seo赚钱培训
  • 做网站文字要求/痘痘该如何去除效果好
  • 猎头招聘网官网/国内seo排名
  • 国内做网站哪家公司好/手机网页制作软件
  • 电商网站建设外包/seo案例视频教程