路徑總和 python

2021-09-20 09:42:32 字數 1295 閱讀 1471

題目描述:

給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。

說明:葉子節點是指沒有子節點的節點。

示例:給定如下二叉樹,以及目標和sum = 22

返回true,因為存在目標和22的根節點到葉子節點的路徑5->4->11->2

# definition for a binary tree node.

# class treenode(object):

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class solution(object):

def haspathsum(self, root, sum):

""":type root: treenode

:type sum: int

:rtype: bool

"""#思路:從當前位置分兩路一直向下遍歷,若有一條到達盡頭的路對應的sum值為0則返回true,否則返回false

if root == none:

return false

def find(node,sum_):

if node.left == none and node.right == none and sum_ == node.val:

return true

elif node.left == none and node.right == none and sum_ != node.val:

return false

elif node.left != none and node.right != none:

return find(node.left,sum_-node.val) or find(node.right,sum_-node.val)

elif node.left != none:

return find(node.left,sum_-node.val)

else:

return find(node.right,sum_-node.val)

return find(root,sum)

菜鳥一枚,**僅供參考,如有問題,望指正~

LeetCode 路徑總和

給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和 sum 22,5 4 8 11 13 4 7 2 1 如下 definition for a binary tree nod...

路徑總和 III

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

路徑總和 II

給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。樣例 1 輸入 root sum 22 5 4 8 11 13 4 7 2 5 1 輸出 5,4,11,2 5,8,4,5 解釋 兩條路徑之和為 22 5 4 11 2 22 5 8 4 5 22樣例 2 輸入 ro...