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

LeetCode[面试题04.12]求和路径

难度:Medium

题目:

 给定一棵二叉树,其中每个节点都含有一个整数数值(该值或正或负)。设计一个算法,打印节点数值总和等于某个给定值的所有路径的数量。注意,路径不一定非得从二叉树的根节点或叶节点开始或结束,但是其方向必须向下(只能从父节点指向子节点方向)。给定一棵二叉树,其中每个节点都含有一个整数数值(该值或正或负)。设计一个算法,打印节点数值总和等于某个给定值的所有路径的数量。注意,路径不一定非得从二叉树的根节点或叶节点开始或结束,但是其方向必须向下(只能从父节点指向子节点方向)。


示例:
给定如下二叉树,以及目标和 sum = 22

              5/ \4   8/   / \11  13  4/  \    / \7    2  5   1

返回:

3
解释:和为 22 的路径有:[5,4,11,2], [5,8,4,5], [4,11,7]

 提示:

  • 节点总数 <= 10000

Related Topics

  • 深度优先搜索
  • 二叉树

重点!!!解题思路

 明确题目要求:路径不一定非得从根节点开始,可以从树中任意节点开始。

 明确解题思路:正常使用dfs即可,当sum值减到0就说明有一条路线,然后枚举树中的每一                            个节点即可

源码:

    class Solution {public int pathSum(TreeNode root, int sum) {if (root == null) return 0;int l = pathSum(root.left, sum);int r = pathSum(root.right, sum);return l + r + getSum(root, sum);}public int getSum(TreeNode root, int sum) {if (root == null) return 0;sum -= root.val;return (sum == 0 ? 1 : 0) + getSum(root.left, sum) + getSum(root.right, sum);}}

 运行结果:

如果您还有什么疑问或解答有问题,可在下方评论,我会及时回复。

系列持续更新中,点个订阅吧,喜欢练习算法那就点个攒吧 

http://www.lryc.cn/news/130015.html

相关文章:

  • 骑行运动耳机哪款好?五年骑行爱好者给你分享分享
  • SpringBoot3集成ElasticSearch
  • 详解23种设计模式优缺点以及解决方案
  • Oracle 数据库中删除表空间的详细步骤与示例
  • <kernel>kernel 6.4 笔记
  • 介绍一些编程语言— Perl 语言
  • 原型与继承
  • Flink流批一体计算(14):PyFlink Tabel API之SQL查询
  • JRebel插件扩展-mac版
  • C语言中常见的一些语法概念和功能
  • Python土力学与基础工程计算.PDF-钻探泥浆制备
  • 【机器学习】— 2 图神经网络GNN
  • QT的布局与间隔器介绍
  • 深入浅出Pytorch函数——torch.nn.Linear
  • Vue3.2+TS的defineExpose的应用
  • 牛客网Python入门103题练习|【08--元组】
  • Jenkins改造—nginx配置鉴权
  • (二)VisionOS平台概述
  • 菜单中的类似iOS中开关的样式
  • Vue 2 动态组件和异步组件
  • MongoDB升级经历(4.0.23至5.0.19)
  • iPhone上的个人热点丢失了怎么办?如何修复iPhone上不见的个人热点?
  • AI 媒人:为什么图形神经网络比 MLP 更好?
  • 信息学奥赛一本通 1984:【19CSPJ普及组】纪念品 | 洛谷 P5662 [CSP-J2019] 纪念品
  • JVM——JVM参数指南
  • 马上七夕到了,用各种编程语言实现10种浪漫表白方式
  • Spring Clould 注册中心 - Eureka,Nacos
  • 使用appuploader工具发布证书和描述性文件教程
  • 【面试八股文】每日一题:谈谈你对IO的理解
  • 200. 岛屿数量