Python编程求解二叉树中和为某一值的路径代码示例

 更新时间:2018年01月04日 15:20:10   作者:明柳梦少  
这篇文章主要介绍了Python编程求解二叉树中和为某一值的路径代码示例,具有一定借鉴价值,需要的朋友可以参考下

题目描述

输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。

思路:首先要理解题意,是从根节点往子节点连。

1、如果只有根节点或者找到叶子节点,我们就把其对应的val值返回

2、如果不是叶子节点,我们分别对根节点的左子树、右子树进行递归,直到找到叶子结点。然后遍历把叶子结点和父节点对应的val组成的序列返回上一层;如果没找到路径,其实也返回了序列,只不过是[]

代码如下:

# -*- coding:utf-8 -*- 
class TreeNode(): 
  def __init__(self,x): 
    self.val = x 
    self.left = None 
    self.right = None 
 
def function(root,target_number): 
  result = [] 
  if not root: 
    return result 
#  如果只有根节点或者找到叶子节点,我们就把其值返回 
  if not root.left and not root.right and root.val == target_number: 
    return [[root.val]] 
  else: 
#  如果不是叶子节点,我们分别对根节点的左子树、右子树进行递归,注意修改变量: 
    left = function(root.left,target_number - root.val) 
    right = function(root.right,target_number - root.val) 
    for item in left+right: 
      result.append([root.val]+item) 
    return result 

总结

以上就是本文关于Python编程求解二叉树中和为某一值的路径代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

Python探索之创建二叉树

Python算法之求n个节点不同二叉树个数

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

  • Pandas 按索引合并数据集的方法

    Pandas 按索引合并数据集的方法

    今天小编就为大家分享一篇Pandas 按索引合并数据集的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • python3发送request请求及查看返回结果实例

    python3发送request请求及查看返回结果实例

    这篇文章主要介绍了python3发送request请求及查看返回结果实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 使用systemd部署服务的过程解析

    使用systemd部署服务的过程解析

    这篇文章主要介绍了使用systemd部署服务的过程解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • python实例方法的使用注意及代码实例

    python实例方法的使用注意及代码实例

    在本篇文章里小编给大家总结的是关于python实例方法的使用注意及代码实例内容,对此有兴趣的朋友们可以参考下。
    2022-11-11
  • 详解程序意外中断自动重启shell脚本(以Python为例)

    详解程序意外中断自动重启shell脚本(以Python为例)

    这篇文章主要介绍了详解程序意外中断自动重启shell脚本(以Python为例),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • opencv实践项目之图像拼接详细步骤

    opencv实践项目之图像拼接详细步骤

    OpenCV的应用领域非常广泛,包括图像拼接、图像降噪、产品质检、人机交互、人脸识别、动作识别、动作跟踪、无人驾驶等,下面这篇文章主要给大家介绍了关于opencv实践项目之图像拼接的相关资料,需要的朋友可以参考下
    2023-05-05
  • 启动targetcli时遇到错误解决办法

    启动targetcli时遇到错误解决办法

    这篇文章主要介绍了启动targetcli时遇到错误解决办法的相关资料,希望通过本文能帮助到大家,让大家遇到这样的错误解决,需要的朋友可以参考下
    2017-10-10
  • 详解model.train()和model.eval()两种模式的原理与用法

    详解model.train()和model.eval()两种模式的原理与用法

    这篇文章主要介绍了详解model.train()和model.eval()两种模式的原理与用法,相信很多没有经验的人对此束手无策,那么看完这篇文章一定会对你有所帮助
    2023-03-03
  • Python 常用的安装Module方式汇总

    Python 常用的安装Module方式汇总

    这篇文章主要介绍了Python 常用的安装Module方式汇总,需要的朋友可以参考下
    2017-05-05
  • Python优化代码的技巧分享

    Python优化代码的技巧分享

    Python 是 一种用着很爽的语言,Python也有着很多特性和技巧,可以帮助我们编写更高效、更优雅、更易维护的代码,下面小编为大家整理了一些常用的Python代码优化的简单小技巧,希望对大家有所帮助
    2023-09-09

最新评论