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备份Mysql脚本
Aug 11 Python
python 生成目录树及显示文件大小的代码
Jul 23 Python
分析python切片原理和方法
Dec 19 Python
Python 中导入csv数据的三种方法
Nov 01 Python
Python3.5模块的定义、导入、优化操作图文详解
Apr 27 Python
python内存监控工具memory_profiler和guppy的用法详解
Jul 29 Python
Python遍历字典方式就实例详解
Dec 28 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
Feb 03 Python
Anaconda的安装及其环境变量的配置详解
Apr 22 Python
Python实现汇率转换操作
May 03 Python
Python3通过chmod修改目录或文件权限的方法示例
Jun 08 Python
Python基础之Socket通信原理
Apr 22 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以指定字段为索引返回数据库所取的数据数组
2013/06/30 PHP
PHP Switch 语句之学习笔记
2013/09/21 PHP
PHP实现获取客户端IP并获取IP信息
2015/03/17 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
2019/10/15 PHP
Laravel 连接(Join)示例
2019/10/16 PHP
给Javascript数组插入一条记录的代码
2007/08/30 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
Javascript模仿淘宝信用评价实例(附源码)
2015/11/26 Javascript
使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
2016/07/07 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
微信小程序扫描二维码获取信息实例详解
2019/05/07 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
浅析vue中的nextTick
2020/12/28 Vue.js
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
2015/03/05 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
解决Python pandas plot输出图形中显示中文乱码问题
2018/12/12 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
python绘制规则网络图形实例
2019/12/09 Python
Django视图、传参和forms验证操作
2020/07/15 Python
详解Python IO编程
2020/07/24 Python
next在python中返回迭代器的实例方法
2020/12/15 Python
澳大利亚男士西服品牌:M.J.Bale
2018/02/06 全球购物
美丽的珠宝配饰:SmallThings
2019/09/04 全球购物
如何写好优秀的创业计划书
2014/01/30 职场文书
爱情保证书大全
2014/04/29 职场文书
幼儿园教师演讲稿
2014/05/06 职场文书
环保倡议书500字
2014/05/15 职场文书
德育标兵事迹材料
2014/08/24 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
房屋授权无偿使用证明
2014/11/29 职场文书
2014年电话客服工作总结
2014/12/09 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书