首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

二叉树——112. 路径总和

1 题目描述 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。...所以不存在根节点到叶子节点的路径。...3 题目提示 树中节点的数目在范围 [0, 5000] 内 -1000 <= Node.val <= 1000 -1000 <= targetSum <= 1000 4 思路 注意到本题的要求是,询问是否有从...复杂度分析 时间复杂度:o(N),其中N是树的节点数。对每个节点访问一次。 空间复杂度:o(N),其中N是树的节点数。空间复杂度主要取决于队列的开销,队列中的元素个数不会超过树的节点数。...方法二:递归 观察要求我们完成的函数,我们可以归纳出它的功能:询问是否存在从当前节点root到叶子节点的路径,满足其路径和为sum。

28410

LeetCode 路径总和(二叉树)(DFS)

题目 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。...示例:  给定如下二叉树,以及目标和 sum = 22, 返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2 来源:力扣(LeetCode) 链接:https...思路 从根节点开始遍历每个节点,每次递归将此根节点和前面路径的节点传入,然后当时叶子结点时判断总路径是否相等。 /** * Definition for a binary tree node....false; //判断因子 int num; void path(TreeNode* root, int n) { if (root == NULL) { //根为空的情况...path(root->right, root->val + n); } bool hasPathSum(TreeNode* root, int sum) { //判断两者中特殊情况

40920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    每日三题-二叉树的最大深度、二叉树中的最大路径和、路径总和III

    ‍个人主页: 才疏学浅的木子 ‍♂️ 本人也在学习阶段如若发现问题,请告知非常感谢 ‍♂️ 本文来自专栏: 算法 算法类型:Hot100题 ❤️ 支持我:点赞 收藏 关注 每日三题...二叉树的最大深度 二叉树中的最大路径和 路径总和III 补上11月12日的每日三题 二叉树的最大深度 解法一 递归 class Solution { public int maxDepth...root.left); int right = maxDepth(root.right); return Math.max(left,right)+1; } } 二叉树中的最大路径和...(parent+cur+Math.max(left,right)) 这里只能取一边因为要构成路径 class Solution { int res = Integer.MIN_VALUE;...root的父节点使用 return cur + Math.max(left,right); } } 路径总和III 解法一 暴力 算出以节点为根节点满足条件的路径数 再算出每个节点的再相加

    30940

    【Leetcode -111.二叉树的最小深度 -112.路径总和】

    Leetcode -111.二叉树的最小深度 题目:给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。...RightDepth : LeftDepth; } Leetcode -112.路径总和 题目:给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。...判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。 如果存在,返回 true ;否则,返回 false 。 叶子节点 是指没有子节点的节点。...示例 2: 输入:root = [1, 2, 3], targetSum = 5 输出:false 解释:树中存在两条根节点到叶子节点的路径: (1 – > 2) : 和为 3 (1 – >...val ,作为下一个函数递归的新的 targetSum ,判断它的左子树或者右子树的路径总和是否等于新的 targetSum;结束条件为空、只剩一个节点; bool hasPathSum(struct

    10510

    二叉树中的最大路径和

    思路 (递归,树的遍历) 路径 在这道题目中,路径是指从树中某个节点开始,沿着树中的边走,走到某个节点为止,路过的所有节点的集合。路径的权值和是指路径中所有节点的权值的总和。...用最高节点可以将整条路径分为两部分:从该节点向左子树延伸的路径,和从该节点向右子树延伸的部分。 如图所示: 我们可以递归遍历整棵树,递归时维护从每个子树从最高节点开始往下延伸的最大路径和。...对于每个子树的最高节点,递归计算完左右子树后,我们将左右子树维护的两条最大路径,和该点拼接起来,就可以得到以这个点为最高节点子树的最大路径。...(这条路径一定是:左子树路径->最高节点->右子树路径) 然后维护从这个点往下延伸的最大路径:从左右子树的路径中选择权值大的一条延伸即可。...(只能从左右子树之间选一条路径) 最后整颗树的最大路径和为: 根节点值+左子树最大路径和+右子树最大路径和,即left_max + right_max + root->val 注意: 如果某条路径之和小于

    22230

    python中的路径问题汇总

    路径书写格式 windows系统中,’\’与’/’均可以在书写路径中使用,但在字符串里面\被作为转义字符使用 网页网址和linux、unix系统下一般都用’/‘ python在描述路径时有两种方式...: ‘d:\a.txt’,转义的方式 r’d:\a.txt’,声明字符串不需要转义 ---- 问题1:其实python中文件的绝对路径可以直接复制window的路径, 如: C:\Users\Administrator...\Desktop\python\source.txt 这个路径是没有问题的 但是,其实你的绝对路径正确,但是执行报错,那么就是你文件名的问题,如: C:\Users\Administrator\Desktop...\python\t1.txt 这个路径绝对会报错,因为 \t被转义了。...python就会解析为C:\Users\Administrator\Desktop\python 1.txt 这个时候肯定会报错的 若果你改成下面的写法就不会报错啦(推荐使用此写法“/”,可以避免很多异常

    1.5K20

    python学习笔记10.1 python中的路径

    获取文件所在的路径 1. '.'和os.getcwd() python中‘.’和os.getcwd()是等价的,是运行python文件的工作目录,而不是被运行的文件所在目录,它是随着工作目录变化的。...这些路径使用在import中的时候需要注意: import sys import os # 没有意义,被运行文件所在路径是sys.path的第一个路径,所以同级目录下的模块一定会被搜索到。...获取文件所在的路径 import os # 被运行文件的绝对路径 fpath = os.path.dirname(__file__) print(fpath) 由此可见,它与运行python程序的工作目录没有任何关系...它是被运行文件的绝对路径。 一般用于被运行程序的相对路径的库文件的导入和数据文件的导入。.../data/data1') 总结,在python程序设计时使用相对路径一定要谨慎,否则可能导致程序只能在特定文件夹运行的情况发生。

    72130

    LeetCode 实战:「图解」二叉树中的最大路径和

    题目描述 给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径 至少包含一个节点 ,且不一定经过根节点。...题目要求出一个二叉树的最大路径和,路径和就是把一条路径上面节点的值加起来,这一题的难点在于路径的方向不固定,只要是任意两点间的通路都算是有效路径。...,用来记录遍历过程中的内容。...我们再回过头来看这道题,在递归遍历的过程中,对于当前节点,其在路径中可以是路径尾,路径头(假设路径是从上到下的,其实在这道题中,没有头尾的概念),也可以是路径中的一个节点。 那怎么判断呢?...但是需要注意的是,我们返回的时候,第一种情况是不能返回的,因为对于上一层节点来说,其无法形成有效的路径,因此我们只需要将 2,3,4 中的最大值返回即可,当然,更新全局答案的时候,这 4 种情况都需要考虑在内的

    73130
    领券