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


Posted in Python onJanuary 04, 2018

题目描述

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

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

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实现的将文件每一列写入列表功能示例【测试可用】
Mar 19 Python
Django项目中用JS实现加载子页面并传值的方法
May 28 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
Oct 15 Python
Python生成一个迭代器的实操方法
Jun 18 Python
Python数据类型之列表和元组的方法实例详解
Jul 08 Python
深入了解Python在HDA中的应用
Sep 05 Python
Python数据处理篇之Sympy系列(五)---解方程
Oct 12 Python
Python 导入文件过程图解
Oct 15 Python
python 浅谈serial与stm32通信的编码问题
Dec 18 Python
PyTorch 普通卷积和空洞卷积实例
Jan 07 Python
Python2与Python3的区别详解
Feb 09 Python
python3从网络摄像机解析mjpeg http流的示例
Nov 13 Python
Python编写Windows Service服务程序
Jan 04 #Python
微信跳一跳python辅助软件思路及图像识别源码解析
Jan 04 #Python
Python操作MongoDB数据库的方法示例
Jan 04 #Python
Python字典操作详细介绍及字典内建方法分享
Jan 04 #Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
Jan 04 #Python
Python给你的头像加上圣诞帽
Jan 04 #Python
Python编程实现线性回归和批量梯度下降法代码实例
Jan 04 #Python
You might like
php 301转向实现代码
2008/09/18 PHP
php模拟post行为代码总结(POST方式不是绝对安全)
2012/02/22 PHP
php中++i 与 i++ 的区别
2012/08/08 PHP
php 如何获取数组第一个值
2013/08/06 PHP
CodeIgniter实现更改view文件夹路径的方法
2014/07/04 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
浅谈PDO的rowCount函数
2015/06/18 PHP
PHPExcel在linux环境下导出报500错误的解决方法
2017/01/26 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
基于jQuery的树控件实现代码(asp.net+json)
2010/07/11 Javascript
js 动态文字滚动的例子
2011/01/17 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
JQuery EasyUI 数字格式化处理示例
2014/05/05 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
2015/06/10 Javascript
快速学习AngularJs HTTP响应拦截器
2015/12/31 Javascript
js实现复选框的全选和取消全选效果
2017/01/03 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
2017/02/03 Javascript
Three.js实现简单3D房间布局
2018/12/30 Javascript
[02:42]决战东方!DOTA2亚洲邀请赛重启荣耀之争
2017/03/17 DOTA
Python基于Matplotlib库简单绘制折线图的方法示例
2017/08/14 Python
python 用opencv调用训练好的模型进行识别的方法
2018/12/07 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
彻底理解Python中的yield关键字
2019/04/01 Python
python实现在函数图像上添加文字和标注的方法
2019/07/08 Python
Python获取统计自己的qq群成员信息的方法
2019/11/15 Python
基于python图像处理API的使用示例
2020/04/03 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
Python json解析库jsonpath原理及使用示例
2020/11/25 Python
python+playwright微软自动化工具的使用
2021/02/02 Python
python UIAutomator2使用超详细教程
2021/02/19 Python
CSS3中使用RGBA设置透明度的示例
2015/08/04 HTML / CSS
印度尼西亚最大和最全面的网络商城:Blibli.com
2017/10/04 全球购物
应届专科生个人的自我评价
2014/01/05 职场文书
幼儿园开学通知
2015/04/24 职场文书
幼儿园圣诞节活动总结
2015/05/06 职场文书
祝福语集锦:送给毕业同学祝福语
2019/11/21 职场文书