如何分析python二叉树中和为某一值的路径
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,这篇文章给大家介绍如何分析python二叉树中和为某一值的路径,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径
千家信息网最后更新 2024年11月20日如何分析python二叉树中和为某一值的路径
这篇文章给大家介绍如何分析python二叉树中和为某一值的路径,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。
示例:
给定如下二叉树,以及目标和 sum = 22
,
5
/ \
4 8
/ / \
11 13 4
/ \ / \
7 2 5 1
返回:
[
[5,4,11,2],
[5,8,4,5]
]
提示:
节点总数 <= 10000
注意:本题与主站 113 题相同:https://leetcode-cn.com/problems/path-sum-ii/
解题思路:
1,此题只是,先序遍历的一个变形
2,递归执行,深度优先遍历,这个时候sum变为sum-root.Val
3,到达叶子节点的时候,判断sum==root.Val,是则将整个链路加入结果里,否则,继续遍历
4,需要注意一点了,go的slice传递的是值,但是数据引用的是同一份
5,copy的时候需要先make分配空间,否则copy不成功
代码实现
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func pathSum(root *TreeNode, sum int) [][]int {
var p[]int
var r [][]int
r=dfs(root,sum,p,r)
return r
}
func dfs(root *TreeNode, sum int,path []int,ret [][]int)[][]int{
if root==nil {
return ret
}
path=append(path,root.Val)
if root.Left==nil && root.Right==nil {
if sum==root.Val{
p:=make([]int,len(path))
copy(p,path)
ret=append(ret,p)
fmt.Println(1,":",path,p,sum,root,ret)
}
return ret
}
if root.Left==nil{
return dfs(root.Right,sum-root.Val,path,ret)
}
if root.Right==nil{
return dfs(root.Left,sum-root.Val,path,ret)
}
l:=dfs(root.Left,sum-root.Val,path,ret)
r:=dfs(root.Right,sum-root.Val,path,ret)
fmt.Println(ret,l,r)
ret=append(ret,l...)
ret=append(ret,r...)
return ret
}
关于如何分析python二叉树中和为某一值的路径就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
节点
路径
时候
分析
内容
整数
更多
帮助
输入
不错
相同
成功
代码
兴趣
只是
叶子
小伙
小伙伴
思路
总数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库表经常被锁死
foxbase关系数据库
软件开发项目技术分享
网络安全与文化保护有关
国外软件开发商
西藏网络安全保护主题
思政课数据库在哪
数据库中什么是事物处理
泸科版 网络技术应用
揭阳app软件开发哪家强
公安机关建立数据库的方案
云e服务器
服务器可以使用百兆网络吗
vb 远程数据库
高考查询系统数据库
数据库指纹
我的世界服务器中商店怎么制作
有孚服务器
湖南定制软件开发价格
网络安全事件报送
计算机网络技术的教学分析
工业控制网络安全与实践
网络技术基础书籍网上下载
郑州比林网络技术
网络安全osi七层模型
纳入属地网络安全工作
嵌入式软件开发证书查询
微信虚拟定位软件开发
国家网络安全信息部
网络安全A级