LeetCode 112 路径总和 python3
1、递归
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:def hasPathSum(self, root: TreeNode, targetSum: int) -> bool:# 空节点if not root:return False# 叶子节点if not root.left and not root.right:return targetSum == root.val# 每搜索一个节点从sum中减去节点值return self.hasPathSum(root.left,targetSum-root.val) or self.hasPathSum(root.right,targetSum-root.val)
2、广度优先搜索
使用两个队列:
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:def hasPathSum(self, root: TreeNode, targetSum: int) -> bool:if not root:return False# 两个队列,一个存节点,一个存根节点到此节点的节点值之和que_node = collections.deque([root])que_val = collections.deque([root.val])while que_node:node = que_node.popleft()nodeval = que_val.popleft()if not node.left and not node.right:if nodeval == targetSum:return Trueif node.left:que_node.append(node.left)que_val.append(nodeval+node.left.val)if node.right:que_node.append(node.right)que_val.append(nodeval+node.right.val)return False
一个队列:
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:def hasPathSum(self, root: TreeNode, targetSum: int) -> bool:if not root:return False# 一个队列存节点以及根节点到此节点的和que_node = collections.deque([(root,root.val)])while que_node:node,nodeval = que_node.popleft()if not node.left and not node.right:if nodeval == targetSum:return Trueif node.left:que_node.append((node.left,nodeval+node.left.val))if node.right:que_node.append((node.right,nodeval+node.right.val))return False
LeetCode 112 路径总和 python3相关推荐
- C++描述 LeetCode 112. 路径总和
C++描述 LeetCode 112. 路径总和 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客,唯一博客更 ...
- LeetCode 112. 路径总和 、113. 路径总和 II 思考分析
目录 112. 路径总和 题目 递归解 递归解,其他人的解法 迭代解,其他人的解法 113. 路径总和 II 题目 递归解 递归解,参考别人的思路 112. 路径总和 题目 给定一个二叉树和一个目标和 ...
- leetcode 112路径总和
leetcode 112 其实leetcode上的题解和评论都很好的,找题解不用到csdn来,我是想把自己做过的题都记录下来才来写这个 class Solution {public:bool hasP ...
- 53. Leetcode 112. 路径总和 (二叉树-二叉树路径和)
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum .判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum .如果存在,返回 tr ...
- Leetcode 112. 路径总和 (每日一题 20210910)
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum .叶子节点 是指没有子 ...
- [leetcode]112.路径总和
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum . 叶子节点 是指没有 ...
- LeetCode 112路径总和-简单
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum . 叶子节点 是指没有 ...
- 49 - 算法 - Leetcode 112 路径总和 -二叉树递归 带参数一起递归
// 感觉都是那几个固定的格式 寻找临时 单前树 状态输入减小 int sum递减 //树递归 所带的参数也递归减少class Solution {public:bool hasPathSum(Tre ...
- LeetCode——113 路径总和 II(JAVA)
给你二叉树的根节点 root和一个整数目标和 targetSum,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径. 叶子节点 是指没有子节点的节点. 示例 1: 输入:root = [5, ...
最新文章
- torch 多进程队列 问题
- python selenium 等待页面加载_python selenium 三种等待方式详解(实战常用)
- iOS Xcode4.2代码管理工具的使用
- rtmp服务器_nginx+windwos 搭建 rtmp 流媒体服务器
- 求职产品经理【十六】笔试真题串讲之百度地图与大数据结合的产品
- 2019至今TIOBE编程语言排行榜Top 20,Python完胜C++了吗?
- Python中tkinter.filedialog
- python之路day5_学习python之路--Day5 计算器
- web.xml中配置DispatcherServlet前端控制器和CharacterEncodingFilter字符过滤器后web-app标签显红报错
- jmeter根据循环获取参数_Jmeter--同线程组循环获取数据库数据传递请求
- 药大保研计算机要求,药物分析专业保研经验贴
- Win10台式机前面板耳机无声音,没有Realtek高清晰音频管理器,前置耳机孔无法使用
- C语言从入门到精通(第一期之结构框架)
- AI在医疗领域的应用 | “AI+传统行业”全盘点
- 雨林风一键重装系统_u盘启动盘制作工具-雨林风
- 方法解读 | 性染色体Phasing
- 疫情之下,这10个技巧助你开启云面试的正确姿势
- 服务器系统宕机什么意思,服务器宕机是什么意思?
- 在framework下新建系统api
- python32位与62位可以随便装吗_电脑32位和64位可以随便换吗???
热门文章
- 【课程笔记】李弘毅2020 Deep Learning for Human Language Processing
- PHP采集-数据采集PHP采集器
- flash特效原理:图片切换滚动
- ICIP2021:VVC RPR参考结构改进
- L1-040 最佳情侣身高差 (10分)(C语言)
- 【SPOJ-TSHOW1】Amusing numbers【二进制】
- vue iframe里内容无法撑开高度 固定150px 解决方法
- win7计算机本地用户和组,Win7系统找不到本地用户和组的两大解决方案
- 塔科夫为什么远程服务器返回错误,逃离塔科夫登陆错误解决教程
- 什么是CUDA、什么是GPU?