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文件操作之目录遍历实例分析
May 20 Python
简介Django框架中可使用的各类缓存
Jul 23 Python
Django日志模块logging的配置详解
Feb 14 Python
Python设计模式之观察者模式简单示例
Jan 10 Python
python: 自动安装缺失库文件的方法
Oct 22 Python
浅谈pycharm的xmx和xms设置方法
Dec 03 Python
Python线性拟合实现函数与用法示例
Dec 13 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
Aug 12 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
Aug 29 Python
Python+numpy实现矩阵的行列扩展方式
Nov 29 Python
Transpose 数组行列转置的限制方式
Feb 11 Python
Python常用GUI框架原理解析汇总
Dec 07 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
模仿OSO的论坛(五)
2006/10/09 PHP
php checkbox 取值详细说明
2010/08/19 PHP
php数组中删除元素的实现代码
2012/06/22 PHP
深入PHP nl2br()格式化输出的详解
2013/06/05 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
PHP禁止个别IP访问网站
2013/10/30 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
2018/04/21 PHP
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
Jquery弹出层插件ThickBox的使用方法
2014/12/09 Javascript
node.js中的fs.write方法使用说明
2014/12/15 Javascript
javascript实时获取鼠标坐标值并显示的方法
2015/04/30 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
AjaxFileUpload.js实现异步上传文件功能
2019/04/19 Javascript
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
js实现头像上传并且可预览提交
2020/12/25 Javascript
[50:58]2018DOTA2亚洲邀请赛3月29日 小组赛A组OpTic VS Newbee
2018/03/30 DOTA
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
Python栈类实例分析
2015/06/15 Python
python实现文件快照加密保护的方法
2015/06/30 Python
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
Django中的AutoField字段使用
2020/05/18 Python
Python 通过正则表达式快速获取电影的下载地址
2020/08/17 Python
Python 多进程、多线程效率对比
2020/11/19 Python
大女孩胸罩:Big Girls Bras
2016/12/15 全球购物
《会走路的树》教后反思
2014/04/19 职场文书
质量承诺书怎么写
2014/05/24 职场文书
档案保密承诺书
2014/06/03 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
房屋登记授权委托书范本
2014/10/09 职场文书
个人道歉信大全
2019/04/11 职场文书
简历自我评价:教师师德表现自我评价
2019/04/24 职场文书
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js