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简单实现基于SSL的IRC bot实例
Jun 15 Python
分享几道你可能遇到的python面试题
Jul 24 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
Nov 11 Python
Python json模块dumps、loads操作示例
Sep 06 Python
Python实现Dijkstra算法
Oct 17 Python
Python实现简易过滤删除数字的方法小结
Jan 09 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
Jan 30 Python
python 实现多维数组转向量
Nov 30 Python
python encrypt 实现AES加密的实例详解
Feb 20 Python
Python任务调度利器之APScheduler详解
Apr 02 Python
python 6行代码制作月历生成器
Sep 18 Python
基于PyQt5制作一个群发邮件工具
Apr 08 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
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
php入门小知识
2008/03/24 PHP
2017年最好用的9个php开发工具推荐(超好用)
2017/10/23 PHP
JS类中定义原型方法的两种实现的区别
2007/03/08 Javascript
学习ExtJS(一) 之基础前提
2009/10/07 Javascript
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
js类式继承的具体实现方法
2013/12/31 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
js 提取某()特殊字符串长度的实例
2017/12/06 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
Vuex实现数据共享的方法
2019/12/20 Javascript
JS函数进阶之prototy用法实例分析
2020/01/15 Javascript
Vue中fragment.js使用方法小结
2020/02/17 Javascript
前端性能优化建议
2020/09/17 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
2020/11/06 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
2020/11/09 Javascript
JavaScript async/await原理及实例解析
2020/12/02 Javascript
[34:56]Ti4冒泡赛LGD vs Liquid 1
2014/07/14 DOTA
python的range和linspace使用详解
2019/11/27 Python
Python 矩阵转置的几种方法小结
2019/12/02 Python
keras的siamese(孪生网络)实现案例
2020/06/12 Python
Python二元算术运算常用方法解析
2020/09/15 Python
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物
init进程的作用
2012/04/12 面试题
测试驱动开发的主要步骤是什么
2014/12/10 面试题
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
车间机修工岗位职责
2014/02/28 职场文书
2014年公司植树节活动方案
2014/03/04 职场文书
视光学专业自荐信
2014/06/24 职场文书
2014年检验员工作总结
2014/11/19 职场文书
展览会邀请函
2015/02/02 职场文书
2015年大学生社会实践评语
2015/03/26 职场文书
springboot中rabbitmq实现消息可靠性机制详解
2021/09/25 Java/Android