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聊天程序实例代码分享
Nov 18 Python
python实现复制整个目录的方法
May 12 Python
详解Python 数据库 (sqlite3)应用
Dec 07 Python
Python制作豆瓣图片的爬虫
Dec 28 Python
Python读取视频的两种方法(imageio和cv2)
Apr 15 Python
python 字符串和整数的转换方法
Jun 25 Python
Python定义一个跨越多行的字符串的多种方法小结
Jul 19 Python
python实现整数的二进制循环移位
Mar 08 Python
解决python 3 urllib 没有 urlencode 属性的问题
Aug 22 Python
python查询MySQL将数据写入Excel
Oct 29 Python
10张动图学会python循环与递归问题
Feb 06 Python
OpenCV 图像梯度的实现方法
Jul 25 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
Godaddy空间Zend Optimizer升级方法
2010/05/10 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
PHP模块化安装教程
2016/06/01 PHP
老生常谈PHP数组函数array_merge(必看篇)
2017/05/25 PHP
jQuery对象与DOM对象之间的转换方法
2010/04/15 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
2013/11/27 Javascript
JS中使用Array函数shift和pop创建可忽略参数的例子
2014/05/28 Javascript
深入理解JavaScript的React框架的原理
2015/07/02 Javascript
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
JS插件overlib用法实例详解
2015/12/26 Javascript
js+html5实现canvas绘制椭圆形图案的方法
2016/05/21 Javascript
Javascript之面向对象--封装
2016/12/02 Javascript
Angular的模块化(代码分享)
2016/12/26 Javascript
jQuery获取选中单选按钮radio的值
2016/12/27 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
详解小程序横屏方案对比
2020/06/28 Javascript
rabbitmq(中间消息代理)在python中的使用详解
2017/12/14 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
python pandas获取csv指定行 列的操作方法
2019/07/12 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
H5混合开发app如何升级的方法
2018/01/10 HTML / CSS
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
美国婴儿用品店:Babies”R”Us
2017/10/12 全球购物
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
全球异乡人的跨境社交电商平台:Kouhigh口嗨网
2020/07/24 全球购物
string = null 和string = ''的区别
2013/04/28 面试题
工厂门卫的岗位职责
2014/07/27 职场文书
八年级英语教学计划
2015/01/23 职场文书
领导欢迎词范文
2015/01/26 职场文书
水电施工员岗位职责
2015/04/11 职场文书
企业党建工作总结2015
2015/05/26 职场文书
小学校长开学致辞
2015/07/29 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书
Python 中的Sympy详细使用
2021/08/07 Python