文档章节

二叉树中和为某一值的路径

F
 FollowMee
发布于 2017/06/24 22:57
字数 248
阅读 8
收藏 0

二叉树中和为某一值的路径

题目内容:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径

解法:二叉树深度优先遍历附带记忆栈完成

# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    # 返回二维列表,内部每个列表表示找到的路径
    def FindPath(self, root, expectNumber):
        # write code here
        if not root:
            return []
        pl = []
        path = []
        cs = 0
        self.findPath(root, expectNumber, path, cs, pl)
        return pl
    def findPath(self, root, en, path, cs, pl):
        cs = cs + root.val
        path.append(root.val)
        if(cs == en and (root.left is None and root.right is None)):
            temp=[]                #path是可变对象
            temp.extend(path)
            pl.append(temp)
        if root.left:
            self.findPath(root.left, en, path, cs, pl)
        if root.right:
            self.findPath(root.right, en, path, cs, pl)
        cs = cs - path.pop()

注意:path是可变对象,添加路径时转换为不可变对象

© 著作权归作者所有

共有 人打赏支持
F
粉丝 1
博文 8
码字总数 2003
作品 0
私信 提问

暂无文章

Deepin 安装wireshark抓包工具

一、关于deepin和wireshark deepin目前已经发展到15.8了,开发Android毫无压力,在四个月的使用时间里,已经非常习惯了。目前想处理一些网络问题,因此尝试在deepin上安装一个抓包工具。dee...

IamOkay
8分钟前
0
0
Docker镜像仓库服务-Nexus

建立云原生集群系统,建立自己的私有Docker镜像仓库必不可少。一方面可以加快多节点部署容器镜像的下载速度,另一方面是为了安全(容器里存储有系统所有的信息、包括密码、数据库等等,切记不...

openthings
20分钟前
0
0
127.0.0.1 和 0.0.0.0 地址的区别

1. IP地址分类 1.1 IP地址表示 IP地址由两个部分组成,net-id和host-id,即网络号和主机号。 net-id:表示ip地址所在的网络号。 host-id:表示ip地址所在网络中的某个主机号码。 即: IP-a...

华山猛男
今天
17
0
解决Unknown host 'd29vzk4ow07wi7.cloudfront.net'. You may need to adjust the proxy settings in Gradle.

把 总项目 下的 build.gradle 中的 两个 jcenter() 用 maven{ url ‘http://maven.aliyun.com/nexus/content/groups/public/’} 代替。...

lanyu96
今天
4
0
基于redis的分布式锁

redisson提供了基于redis的分布式锁实现方式,本文就尝试了下锁的使用方式。Redisson同时还为分布式锁提供了异步执行的相关方法,第二节执行介绍。 一、可重入锁验证 同一个jvm里面同一线程的...

noob_chr
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部