题目: 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。

来源: https://leetcode-cn.com/problems/path-sum-ii/

法一: 自己的代码, 没有官方题解

思路: 递归实现,类似前序遍历

# 执行用时 :44 ms, 在所有 python3 提交中击败了99.18% 的用户
# 内存消耗 :14.2 MB, 在所有 python3 提交中击败了98.55%的用户
# Definition for a binary tree node.
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
from typing import List
class Solution:
def pathSum(self, root: TreeNode, sum: int) -> List[List[int]]:
results = []
res= []
s = 0
def recursion(root,s):
# 如果遍历到一个分支的底了,则为空节点,返回True,继续遍历
if root == None:
return True
res.append(root.val)
# 注意不传s不行,全局变量s指向不可变对象,只能在里面调用,不能修改
s = s + root.val
a = recursion(root.left,s)
b = recursion(root.right,s)
# 如果到叶节点了,且和也满足条件,则存储
if a and b:
if s == sum:
results.append(res[:])
s = s - root.val
# 注意这里res是个全局变量,且因为指向可变对象所以可以修改,每次函数结束时,res中的
# 内容不会自定返回到调用前的状态,所以需要出栈来恢复状态
res.pop()
recursion(root,s)
return results
if __name__ == '__main__':
duixiang = Solution() root = TreeNode(8)
a = TreeNode(4)
b = TreeNode(9)
root.left = a
root.right = b al = TreeNode(3)
ar = TreeNode(6)
a.left = al
a.right = ar arl = TreeNode(5)
arr = TreeNode(7)
ar.left = arl
ar.right = arr
sum = 17
a = duixiang.pathSum(root,sum)
print(a)

113路径总和II的更多相关文章

  1. Java实现 LeetCode 113 路径总和 II

    113. 路径总和 II 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = ...

  2. 刷题-力扣-113. 路径总和 II

    113. 路径总和 II 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/path-sum-ii 著作权归领扣网络所有.商业转载请联系 ...

  3. 113. 路径总和 II

    给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 ...

  4. LeetCode 113. 路径总和 II(Path Sum II)

    题目描述 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / ...

  5. [LeetCode] 113. 路径总和 II

    题目链接 : https://leetcode-cn.com/problems/path-sum-ii/ 题目描述: 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径 ...

  6. 【LeetCode】113. 路径总和 II

    题目 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ ...

  7. LeetCode 113. 路径总和 II C++

    提交结果:内存超100%,用时超69% /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNo ...

  8. 【二叉树-所有路经系列(根->叶子)】二叉树的所有路径、路径总和 II、路径总和、求根到叶子节点数字之和(DFS)

    总述 全部用DFS来做 重点一:参数的设置:为Root,路径字符串,路径List集合. 重点二:步骤: 1 节点为null 2 所有节点的操作 3 叶子结点的操作 4 非叶节点的操作 题目257. 二 ...

  9. LeetCode:路径总和II【113】

    LeetCode:路径总和II[113] 题目描述 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例:给定如下二叉树, ...

随机推荐

  1. Mac OSX编译安装php5.6

    安装好OSX 10.13以后默认自带的php7.1.7,跟现有环境不兼容,所以准备编译安装php5.6,自带的php7不建议卸载,重新安装一份php5.6 1.安装php的一些依赖,推荐使用brew安 ...

  2. MSSQL日期分组排序

    等于今天日期的排上面,大于今天的排中间,小于今天的排下面,带分页.

  3. 高性能mysql 第1章 mysql架构与历史

    mysql逻辑架构图: 第一层 客户端 第二层(服务层):针对所有类型的存储引擎可以公共提取的部分.将存储引擎抽离之后的其他部分都在这里.如:查询解析,分析优化,内置函数,存储过程,触发器,视图. 第 ...

  4. docker查看容器IP地址

    docker inspect 容器名称或 id 命令:docker inspect redismaster 结果:

  5. Kendo UI for jQuery使用教程:操作系统/jQuery支持等

    [Kendo UI for jQuery最新试用版下载] Kendo UI目前最新提供Kendo UI for jQuery.Kendo UI for Angular.Kendo UI Support ...

  6. vue iOS上传图片file 出错

    前言 用vue 移动端上传图片在低版本的 ios 手机上 图片转换base64 在转换file 文件类型 会报错 并且报错 “Script Error ” 查阅了github 和一些文档发现 可以吧 ...

  7. iOS-修改TableView分割线样式

    实现代码:  myTableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine; 有三种样式: UITableViewCellS ...

  8. 如何在输入命令行npm run dev 之后vue项目自动在浏览器打开

    使用代码编辑器打开vue项目代码,在config文件夹里面找到index.js 将里面的:autoOpenBrowser: false, 修改为 :autoOpenBrowser: true, 这个方 ...

  9. Tushare基础调用及处理

    创建索引: db.daily.createIndex({code:1,date:1,'index':1}) mongodb查看表有几列: map = function() { for (var key ...

  10. 2019春Python程序设计练习6(0423--0429)

    1-1 定义Python函数时,如果函数中没有return语句,则默认返回空值None. (2分) T         F 1-2 在函数内部没有任何声明的情况下直接为某个变量赋值,这个变量一定是函数 ...