

437.路径总和III
source link: https://studygolang.com/articles/25995
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

题目描述
给定一个二叉树,它的每个结点都存放着一个整数值。
找出路径和等于给定数值的路径总数。
路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。
二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。
示例
root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8 10 / \ 5 -3 / \ \ 3 2 11 / \ \ 3 -2 1 返回 3。和等于 8 的路径有: 1. 5 -> 3 2. 5 -> 2 -> 1 3. -3 -> 11
思路
-
既然题目中说明不超过1000个结点,可以使用一个长度为1000的数组,用于保存所有结点的值。
2.可以抽象理解为vals[0]是vals[1]的父节点,vals[1]是vals[2]的父节点。 -
一个结点的路径总和为:rootNum = rootNum + leftNum + rightNum。
4.可以使用递归来处理求和,递归到某一结点时,自底向上的相加结点求和与target即可。
Java代码实现
class Solution { private int num = 0; public int pathSum(TreeNode root, int sum) { int[] vals = new int[1000]; return pathSumDS(root,0,vals,sum); } private int pathSumDS(TreeNode root,int depth,int[] vals,int sum){ if(root == null) return 0; int rootVal = root.val; int num = 0; if(rootVal == sum){ num = 1; } for(int i=depth-1;i>=0;i--){ rootVal = rootVal + vals[i]; if(rootVal == sum){ num++; } } vals[depth] = root.val; int left = pathSumDS(root.left,depth+1,vals,sum); int right = pathSumDS(root.right,depth+1,vals,sum); return num+left+right; } }
Golang代码实现
func pathSum(root *TreeNode, sum int) int { vals := make([]int,1000) return pathSumDS(root,sum,0,vals) } func pathSumDS(root *TreeNode, sum int, depth int,vals []int) int { if root == nil{ return 0 } rootVal := root.Val num := 0 if rootVal == sum{ num++ } for i:=depth-1;i>=0;i--{ rootVal += vals[i] if rootVal == sum{ num++ } } vals[depth] = root.Val left := pathSumDS(root.Left,sum,depth+1,vals) right := pathSumDS(root.Right,sum,depth+1,vals) return num+left+right }
Recommend
-
30
-
39
PHP 计算汉明距离总和 两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量。 计算一个数组中,任意两个数之间汉明距离的总和。
-
9
C++描述 LeetCode 112. 路径总和 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~...
-
3
A股3580位董事长薪酬全曝光:干1年薪酬总和不到“6爽”36氪的朋友们2小时前每日经济新闻(微信号:nbdnews)编者按:本文来自
-
7
幽默:人是神经元关系的总和?人工智能神经网络的成功表明:无论你认为“你”是什么,它不过只是一些神经元相互连接,一些能量流过它们(例如,一些激素作用于它们)。这是OpenAI的首席执行官有七十多万粉丝Sam Altman的一段话。畅销书作家、神经科学家和...
-
6
LeetCode-113-路径总和 II路径总和 II题目描述:给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径...
-
5
一文看懂云原生时代 DevOps 如何选型当前互联网组件生态中,DevOps 工具和系统林林总总,令人眼花缭乱。选用与当前企业发展阶段不适配的 DevOps 组件会导致很多问题,比如...
-
7
#yyds干货盘点# leetcode算法题:路径总和 III 精选 原创 灰太狼_cxh 20...
-
9
Today's Wordle Answer #437 - August 30, 2022 Solution And Hints ...
-
5
Episode 437 - Azure CXP CRE Low Code Automation by
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK