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去掉字符串中重复字符的方法
Feb 27 Python
python基础教程之元组操作使用详解
Mar 25 Python
python基础教程之Hello World!
Aug 29 Python
Python使用functools模块中的partial函数生成偏函数
Jul 02 Python
Python 提取dict转换为xml/json/table并输出的实现代码
Aug 28 Python
python单线程文件传输的实例(C/S)
Feb 13 Python
python批量解压zip文件的方法
Aug 20 Python
python openvc 裁剪、剪切图片 提取图片的行和列
Sep 19 Python
django ajax发送post请求的两种方法
Jan 05 Python
Pytorch 使用不同版本的cuda的方法步骤
Apr 02 Python
pycharm下pyqt4安装及环境配置的教程
Apr 24 Python
pycharm中选中一个单词替换所有重复单词的实现方法
Nov 17 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读取数据库信息的几种方法
2008/05/24 PHP
php 获得汉字拼音首字母的函数
2009/08/01 PHP
PHP var_dump遍历对象属性的函数与应用代码
2010/06/04 PHP
PHP register_shutdown_function函数的深入解析
2013/06/03 PHP
phpcms的分类名称和类别名称的调用
2017/01/05 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
2017/01/11 PHP
HTML node相关的一些资料整理
2010/01/01 Javascript
javascript数字格式化通用类 accounting.js使用
2012/08/24 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
2014/03/12 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
jQuery+ajax中getJSON() 用法实例
2014/12/22 Javascript
javascript中if和switch,==和===详解
2015/07/30 Javascript
详解前端自动化工具gulp自动添加版本号
2016/12/20 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
angularjs实现猜大小功能
2017/10/23 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
JavaScript隐式类型转换代码实例
2020/05/29 Javascript
Element Cascader 级联选择器的使用示例
2020/07/27 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
python字符串的常用操作方法小结
2016/05/21 Python
Python数据处理numpy.median的实例讲解
2018/04/02 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
python标准库OS模块详解
2020/03/10 Python
keras K.function获取某层的输出操作
2020/06/29 Python
Python实现画图软件功能方法详解
2020/07/28 Python
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
学生干部培训方案
2014/06/12 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
毕业答辩开场白范文
2015/05/27 职场文书
缅怀先烈主题班会
2015/08/14 职场文书
小学班级口号大全
2015/12/25 职场文书
详解PHP服务器如何在有限的资源里最大提升并发能力
2021/05/25 PHP