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多线程扫描端口示例
Jan 16 Python
python绘图方法实例入门
May 19 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
Jun 04 Python
Python+Selenium自动化实现分页(pagination)处理
Mar 31 Python
Python使用PyCrypto实现AES加密功能示例
May 22 Python
python 垃圾收集机制的实例详解
Aug 20 Python
网易有道2017内推编程题 洗牌(python)
Jun 19 Python
python读写csv文件的方法
Aug 13 Python
在python中求分布函数相关的包实例
Apr 15 Python
jupyter notebook oepncv 显示一张图像的实现
Apr 24 Python
python基于selenium爬取斗鱼弹幕
Feb 20 Python
Python 用户输入和while循环的操作
May 23 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表单数据写入MySQL数据库的代码
2016/05/31 PHP
CSDN轮换广告图片轮换效果
2007/03/27 Javascript
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
WordPress JQuery处理沙发头像
2009/06/22 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
详解nodejs微信公众号开发——3.封装消息响应模块
2017/04/10 NodeJs
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
layui.js实现的表单验证功能示例
2017/11/15 Javascript
JavaScript中filter的用法实例分析
2019/02/27 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
JavaScript中跨域问题的深入理解
2021/03/04 Javascript
Python中DJANGO简单测试实例
2015/05/11 Python
详解Python中find()方法的使用
2015/05/18 Python
Python使用matplotlib简单绘图示例
2018/02/01 Python
python3实现域名查询和whois查询功能
2018/06/21 Python
python实现俄罗斯方块游戏
2020/03/25 Python
Python 移动光标位置的方法
2019/01/20 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
Django--权限Permissions的例子
2019/08/28 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
Python3 获取文件属性的方式(时间、大小等)
2020/03/12 Python
详解python metaclass(元类)
2020/08/13 Python
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
amaze ui 的使用详细教程
2020/08/19 HTML / CSS
Marriott中国:万豪国际酒店查询预订
2016/09/02 全球购物
J2EE模式面试题
2016/10/11 面试题
大学生求职简历的自我评价
2013/10/21 职场文书
优秀安全员事迹材料
2014/05/11 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
2015年保卫科工作总结
2015/05/14 职场文书
催款函范本大全
2015/06/24 职场文书
医院消毒隔离制度
2015/08/05 职场文书
导游词之上海东方明珠塔
2019/09/25 职场文书