[递归遍历二叉树]路经总和

Posted 21座的胖子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[递归遍历二叉树]路经总和相关的知识,希望对你有一定的参考价值。

题目

思路

不是二叉排序树,那肯定是要遍历整棵树,最常用的方法就是递归,涉及到计算和的问题,如果每次递归把和传到下一个递归中,则需要额外传入一个参数。参考了答案,每次递归的时候减去当前结点的值,这样递归过后只需要判断当前结点是否等于剩下的值。

代码

# Definition for a binary tree node.
# class TreeNode(object):	##定义结点的数据结构
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):
    def hasPathSum(self, root, targetSum):
        """
        :type root: TreeNode
        :type targetSum: int
        :rtype: bool
        """
        if not root:	#没有结点直接返回FALSE
            return False
        if not root.left and not root.right:		#没有孩子结点则直接判断这个结点是否是结尾
            return targetSum == root.val
        #判断左右两个孩子是否是结尾
        return self.hasPathSum(root.left,targetSum-root.val) or self.hasPathSum(root.right,targetSum-root.val)

以上是关于[递归遍历二叉树]路经总和的主要内容,如果未能解决你的问题,请参考以下文章

终于搞明白了二叉树的递归函数是否需要返回值

二叉树的遍历(递归+迭代)

二叉树的遍历(递归+迭代)

二叉树的非递归遍历

二叉树的非递归遍历怎么写?

二叉树的前中后序递归和非递归遍历操作代码