路径总和Python解法
生活随笔
收集整理的這篇文章主要介紹了
路径总和Python解法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給你二叉樹的根節點 root 和一個表示目標和的整數 targetSum 。判斷該樹中是否存在 根節點到葉子節點 的路徑,這條路徑上所有節點值相加等于目標和 targetSum 。如果存在,返回 true ;否則,返回 false 。
葉子節點 是指沒有子節點的節點。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/path-sum
?
例:
輸入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22
輸出:true
解釋:等于目標和的根節點到葉節點路徑如上圖所示。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/path-sum
?
解析:
用目標值直接和當前節點的值進行判斷,相同且當前節點無子節點則返回True,像子節點繼續判斷時只需要減去當前節點的值即可,若目標值存在但判斷節點無則返回false。最后使用“or”,即存在一個True(即一條路徑存在即可)即可。
# 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: return False # 終止條件if root.val == targetSum and not root.left and not root.right: return True # 成功條件return self.hasPathSum(root.left, targetSum-root.val) or self.hasPathSum(root.right, targetSum-root.val) # 遞歸調用總結
以上是生活随笔為你收集整理的路径总和Python解法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 平衡二叉树Python解法
- 下一篇: decimal是什么类型