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 socket 超时设置 errno 10054
Jul 01 Python
详解Python中open()函数指定文件打开方式的用法
Jun 04 Python
Python用imghdr模块识别图片格式实例解析
Jan 11 Python
python中logging包的使用总结
Feb 28 Python
浅谈Python里面小数点精度的控制
Jul 16 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
Jul 19 Python
python跳出双层for循环的解决方法
Jun 24 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
Mar 04 Python
Python3爬虫mitmproxy的安装步骤
Jul 29 Python
python实现文件+参数发送request的实例代码
Jan 05 Python
Pycharm 如何设置HTML文件自动补全代码或标签
May 21 Python
pycharm代码删除恢复的方法
Jun 26 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输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
PHP调用wsdl文件类型的接口代码分享
2014/11/19 PHP
利用javascript实现一些常用软件的下载导航
2009/08/03 Javascript
捕获和分析JavaScript Error的方法
2014/03/25 Javascript
JavaScript极简入门教程(一):基础篇
2014/10/25 Javascript
js不间断滚动的简单实现
2016/06/03 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
2016/11/25 Javascript
Vue.js实现简单ToDoList 前期准备(一)
2016/12/01 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
JS给按钮添加跳转功能类似a标签
2017/05/30 Javascript
React-Native中禁用Navigator手势返回的示例代码
2017/09/09 Javascript
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
用Python的Tornado框架结合memcached页面改善博客性能
2015/04/24 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
2017/06/20 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
Python版名片管理系统
2018/11/30 Python
使用Python刷淘宝喵币(低阶入门版)
2019/10/30 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
美国球迷装备的第一来源:FOCO
2020/07/03 全球购物
最受欢迎的自我评价
2013/12/22 职场文书
大学生职业规划论文
2014/01/11 职场文书
九年级化学教学反思
2014/01/28 职场文书
医学生个人求职信范文
2014/02/07 职场文书
党委班子对照检查材料
2014/08/19 职场文书
优秀共产党员推荐材料
2014/12/18 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
党课主持词大全
2015/06/30 职场文书
安全温馨提示语大全
2015/07/14 职场文书
浅谈golang 中time.After释放的问题
2021/05/05 Golang
安装配置mysql及Navicat prenium的详细流程
2021/06/10 MySQL
MySql子查询IN的执行和优化的实现
2021/08/02 MySQL