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使用opencv读取图片的实例
Aug 17 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
Jan 27 Python
用tensorflow构建线性回归模型的示例代码
Mar 05 Python
linux安装Python3.4.2的操作方法
Sep 28 Python
对python3中, print横向输出的方法详解
Jan 28 Python
如何使用Python进行OCR识别图片中的文字
Apr 01 Python
python反编译学习之字节码详解
May 19 Python
Python中typing模块与类型注解的使用方法
Aug 05 Python
pytorch实现mnist数据集的图像可视化及保存
Jan 14 Python
python无序链表删除重复项的方法
Jan 17 Python
Python如何爬取qq音乐歌词到本地
Jun 01 Python
python 详解turtle画爱心代码
Feb 15 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中取得image按钮传递的name值
2006/10/09 PHP
细谈php中SQL注入攻击与XSS攻击
2012/06/10 PHP
PHP类的声明与实例化及构造方法与析构方法详解
2016/01/26 PHP
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
JQuery与iframe交互实现代码
2009/12/24 Javascript
用js实现计算加载页面所用的时间
2010/04/02 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
2013/11/17 Javascript
可插入图片的TEXT文本框
2013/12/27 Javascript
js菜单点击显示或隐藏效果的简单实例
2014/01/13 Javascript
js中的hasOwnProperty和isPrototypeOf方法使用实例
2014/06/06 Javascript
Javascript字符串对象的常用方法简明版
2014/06/26 Javascript
js动态切换图片的方法
2015/01/20 Javascript
基于JavaScript实现表单密码的隐藏和显示出来
2016/03/02 Javascript
Vue.js实现拖放效果的实例
2016/09/30 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
JavaScript框架Angular和React深度对比
2017/11/20 Javascript
详解Vue组件之间通信的七种方式
2019/04/14 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
详解vue或uni-app的跨域问题解决方案
2020/02/21 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
Python作用域用法实例详解
2016/03/15 Python
Python编写简单的HTML页面合并脚本
2016/07/11 Python
谈谈如何手动释放Python的内存
2016/12/17 Python
使用python实现knn算法
2017/12/20 Python
微信跳一跳小游戏python脚本
2018/01/05 Python
简单了解python模块概念
2018/01/11 Python
关于TensorFlow新旧版本函数接口变化详解
2020/02/10 Python
Django与pyecharts结合的实例代码
2020/05/13 Python
CSS3之2D与3D变换的实现方法
2019/01/28 HTML / CSS
女大学生个人求职信
2013/12/09 职场文书
公司薪酬管理制度
2014/01/31 职场文书
幼儿园中班教学反思
2014/02/10 职场文书
竞选文艺委员演讲稿
2014/04/28 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
Oracle笔记
2021/04/05 Oracle
详解CSS中postion和opacity及cursor的特性
2022/08/14 HTML / CSS