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