【LeetCode】112. Path Sum 解題報告(Python)

題目分析:

給定一個二叉樹和一個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明: 葉子節點是指沒有子節點的節點。
示例: 給定如下二叉樹,以及目標和 sum = 22,返回 true, 因爲存在目標和爲 22 的根節點到葉子節點的路徑 5->4->11->2。
在這裏插入圖片描述

解題思路:

  1. 根節點爲空:返回False
if not root: return False
  1. 根節點左右節點爲空,且根節點值等於sum,返回True
if not root.left and not root.right and root.val == sum: return True
  1. 遞歸左右子樹,有一支爲True即可,所以取or
 return self.hasPathSum(root.left, sum - root.val) or self.hasPathSum(root.right, sum - root.val)

提交代碼:(遞歸,Runtime: 44 ms, faster than 98.42% )

class Solution:
    def hasPathSum(self, root: TreeNode, sum: int) -> bool:
        if not root: return False
        if not root.left and not root.right and root.val == sum: return True
        return self.hasPathSum(root.left, sum - root.val) or self.hasPathSum(root.right, sum - root.val)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章