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, ...
最新文章
- linux+Qt 下利用D-Bus进行进程间高效通信的三种方式
- vue页面数据不显示_PHP7中session_start 使用注意事项,会导致浏览器刷时页面数据不更新...
- OpenAI开源机器人模拟Python库mujoco-py:可高效处理并行模拟
- spark (java API) 在Intellij IDEA中开发并运行
- 美好生活从java开始
- 阿里巴巴有一群全年无休从不领工资的高智商员工
- Android --- 怎么设置 EditText 控件中光标默认位置,当 EditText 里有文字的时候,光标跑到了最前面
- django drf Filter
- python 会议室预约系统解决方案_会议预约管理系统解决方案
- java实现代理服务器
- 什么样的网页适合使用框架
- POJ-3311 Hie with the Pie
- Who is the lion(谁是狮子)!
- 联想笔记本怎么找计算机放桌面,联想笔记本电脑便签在哪,笔记本电脑便签在哪里?...
- 网站备案其实是服务器备案,国内服务器为什么需要备案?国外服务器备案吗?
- paddle实现语音转文字
- Centos 6.9 Install dubbokeeper
- 再谈 Go 语言在前端的应用前景
- JAVA实现基于k-means聚类算法实现微博舆情热点分析系统
- ArcGIS Engine开发教程之图层符号化(四)——符号化之Renderer( 渲染)体系
热门文章
- PyTorch中nn.ReLU(inplace=True)中inplace=True有什么用
- TrackRay:打造一款自己的渗透测试框架
- 基于RNN实现垃圾邮件辨别
- 读书笔记-《赢在用户:Web人物角色创建和应用实践指南》
- 多项式:从什么都不知道到门都没入
- python gui是什么_python gui是什么?
- 【04】SAP ABAP性能优化 - 如何选用内表类型(STANDARD, SORTED, HASHED)?
- 一个比较全的C++农历算法
- python微博爬虫代码_python 微博爬虫 示例源码(lxml)
- R 数字 字符 向量