leetcode 437 路徑總和III

2021-10-12 04:58:35 字數 949 閱讀 1136

每個節點都有可能是路徑的開始,所以每次先算以當前節點t為開始的符合條件的路徑有幾條。然後分別算以左右節點為開始的路徑有幾條。最後返回t的路徑條數+左子樹的路徑條數+右子樹的路徑條數。

每次算路徑和是否等於target時,用sum減去當前節點的數值,如果為0,則當前節點正好是乙個路徑的尾節點,當前存在1條,如果不為0,那麼算左右子樹有沒有符合sum-當前節點數值的和的路徑。

class

solution

(object):

defpathsum

(self, root,

sum)

:"""

:type root: treenode

:type sum: int

:rtype: int

"""ifnot root:

return

0 res = self.dfs(root,

sum)

left = self.pathsum(root.left,

sum)

right = self.pathsum(root.right,

sum)

return res+left+right

defdfs(self,root,

sum):if

not root:

return

0 res =

0if root.val ==

sum:

res =

1return res+self.dfs(root.left,

sum-root.val)

+self.dfs(root.right,

sum-root.val)

Leetcode 437 路徑總和 III

給定乙個二叉樹,它的每個結點都存放著乙個整數值。找出路徑和等於給定數值的路徑總數。路徑不需要從根節點開始,也不需要在葉子節點結束,但是路徑方向必須是向下的 只能從父節點到子節點 二叉樹不超過1000個節點,且節點數值範圍是 1000000,1000000 的整數。示例 題目解釋 由題意可知,即從二叉...

LeetCode 437 路徑總和 III

給定乙個二叉樹,它的每個結點都存放著乙個整數值。找出路徑和等於給定數值的路徑總數。路徑不需要從根節點開始,也不需要在葉子節點結束,但是路徑方向必須是向下的 只能從父節點到子節點 二叉樹不超過1000個節點,且節點數值範圍是 1000000,1000000 的整數。示例 root 10,5,3,3,2...

leetcode 437 路徑總和 III

給定乙個二叉樹,它的每個結點都存放著乙個整數值。找出路徑和等於給定數值的路徑總數。路徑不需要從根節點開始,也不需要在葉子節點結束,但是路徑方向必須是向下的 只能從父節點到子節點 二叉樹不超過1000個 示例 root 10,5,3,3,2,null,11,3,2,null,1 sum 8 10 5 ...