# -*- coding:utf-8 -*-
import copy
class TreeNode:
def __init__(self,x):
self.val=x
self.left=None
self.right =None
class Solution:
def FindPath(self,root,expectNumber):
if not root:
return[]
currentSum=0
path=[]
result=[]
self.FindPathto(root,expectNumber,path,currentSum,result)
return result
def FindPathto(self,root,expectNumber,path,currentSum,result):
currentSum += root.val
path.append(root.val)
#如果是叶节点,并且路径上的节点值等于输入值
#则打印该路径
isLeaf= (root.left==None and root.right==None)
if (currentSum==expectNumber and isLeaf):
# print("A path is found:")
#print(path)
# return path
result.append(copy.deepcopy(path))
# result.extend(path)
#如果不是叶节点,则遍历它的子节点
if root.left !=None:
self.FindPathto(root.left,expectNumber,path,currentSum,result)
if root.right !=None:
self.FindPathto(root.right,expectNumber,path,currentSum,result)
#返回父节点之前,在路径上删除当前节点
path.pop()
# return result
node1=TreeNode(10)
node2=TreeNode(5)
node3=TreeNode(12)
node4=TreeNode(4)
node5=TreeNode(7)
node1.left=node2
node1.right=node3
node2.left=node4
node2.right=node5
S=Solution()
print(S.FindPath(node1,22))
没有合适的资源?快使用搜索试试~ 我知道了~
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径
共2个文件
py:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 54 浏览量
2023-12-02
21:39:08
上传
评论
收藏 1KB ZIP 举报
温馨提示
二叉树的打印 树形状 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径
资源推荐
资源详情
资源评论
收起资源包目录
Python版本 剑指offer中面试题34二叉树中和为某一值。 题目描述: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。 路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径.zip (2个子文件)
FindPath.py 1KB
代码说明.py 307B
共 2 条
- 1
资源评论
博士僧小星
- 粉丝: 1931
- 资源: 5896
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功