面试150 路径总和

思路

在进行先序遍历时,首先判断递归终止的条件:若当前节点为空,则返回 False;若当前节点为叶子节点,且其值等于目标和,则返回 True。递归的核心逻辑是:分别对左右子树进行递归遍历,并在过程中更新目标和。

python 复制代码
class Solution:
    def hasPathSum(self, root: Optional[TreeNode], targetSum: int) -> bool:
        #只有有一条就够了,传入节点和相应的和
        def inorder(node,sum):
            if node==None:
                return False
            if node.left==None and node.right==None and node.val==sum:
                return True
            sum-=node.val
            Left=inorder(node.left,sum)
            Right=inorder(node.right,sum)
            return Left or Right
        
        if not root:
            return False
        return inorder(root,targetSum)
相关推荐
Irissgwe3 天前
map/set/multimap/multiset 的底层逻辑与实现
数据结构·c++·算法·二叉树·stl·c·红黑树
Irissgwe3 天前
AVL树详解
数据结构·c++·算法·二叉树·c·二叉搜索树·avl
Irissgwe4 天前
数据结构-二叉树
数据结构·c++·二叉树·c·
少司府10 天前
C++进阶:红黑树
开发语言·数据结构·c++·b树·二叉树·红黑树
少司府10 天前
C++进阶:AVL树
开发语言·数据结构·c++·二叉树·avl树
伟大的车尔尼12 天前
太平洋大西洋漂流记阅读理解
深度优先搜索·广度优先搜索·太平洋·大西洋·阅读理解
8Qi812 天前
LeetCode 337:打家劫舍 III(House Robber III)—— 题解 ✅
算法·leetcode·二叉树·动态规划
8Qi813 天前
LeetCode 235. 二叉搜索树的最近公共祖先(LCA)
算法·leetcode·二叉树·递归·二叉搜索树·lca·迭代
hope_wisdom13 天前
C/C++数据结构之二叉树基础
c语言·数据结构·c++·二叉树
伟大的车尔尼13 天前
搜索题目:使陆地分离的最少天数
深度优先搜索·广度优先搜索