112.経路合計(Python)
1098 ワード
タイトル
難易度:★☆☆☆タイプ:二叉樹
ツリーとターゲット和を指定し、ツリーにルートノードからリーフノードへのパスが存在するかどうかを判断します.このパスのすべてのノード値がターゲット和に加算されます.
説明:リーフノードとは、サブノードがないノードを指します.
例:
次のような二叉木とターゲットとsum=22が与えられ、
ターゲットと22のルートノードからリーフノードへのパス5->4->11->2があるため、trueを返します.
に答える
再帰的に実現できます.ルートノードが空のツリーを入力すると、パスは必ず存在せず、Falseに戻ります. 入力ノードの左右のサブツリーが空である場合、入力ノードの葉ノードは、現在のノードの値と目標値が等しいことを示す. 入力ノードの左右のサブツリーが1つ以上空でない場合、その左右のサブツリーに存在経路と目標値と現在のノードとの差が要求される.
質問やアドバイスがあれば、コメントエリアへようこそ~
難易度:★☆☆☆タイプ:二叉樹
ツリーとターゲット和を指定し、ツリーにルートノードからリーフノードへのパスが存在するかどうかを判断します.このパスのすべてのノード値がターゲット和に加算されます.
説明:リーフノードとは、サブノードがないノードを指します.
例:
次のような二叉木とターゲットとsum=22が与えられ、
5
/ \
4 8
/ / \
11 13 4
/ \ \
7 2 1
ターゲットと22のルートノードからリーフノードへのパス5->4->11->2があるため、trueを返します.
に答える
再帰的に実現できます.
class Solution:
def hasPathSum(self, root, sum):
if not root: #
return False #
if not root.left and not root.right: #
return sum == root.val #
# ,
return self.hasPathSum(root.left, sum-root.val) or self.hasPathSum(root.right, sum-root.val)
質問やアドバイスがあれば、コメントエリアへようこそ~