先简单回顾一下,今天预计分析的题目: 112. Path Sum
题目叙述:
测资的 Input/Output
DFS 递回 解法
if root is None: return False
newSum = prevSum + node.val
if node.left is None and node.right is None: return newSum == targetSum
True
回来,表示有找到符合加总的路径,便无需往下做,跟着回传 True
if node.left is not None and dfsFindPath(node.left, newSum): return True
True
回来,表示有找到符合加总的路径,便无需往下做,跟着回传 True
if node.right is not None and dfsFindPath(node.right, newSum): return True
False
return False
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def hasPathSum(self, root: Optional[TreeNode], targetSum: int) -> bool:
if root is None: return False
def dfsFindPath(node, prevSum):
newSum = prevSum + node.val
if node.left is None and node.right is None: return newSum == targetSum
if node.left is not None and dfsFindPath(node.left, newSum): return True
if node.right is not None and dfsFindPath(node.right, newSum): return True
return False
return dfsFindPath(root, 0)
DFS 迭代解法
stack = [(root, 0)]
node, prevSum = stack.pop()
newSum = prevSum + node.val
True
if node.left is None and node.right is None and newSum == targetSum: return True
若当前节点不为叶子:
if node.left is not None: stack.append((node.left, newSum))
if node.right is not None: stack.append((node.right, newSum))
若完整迭代完毕,表示没有找到相符的 path,回传 False
return False
完整程序码如下:
class Solution:
def hasPathSum(self, root: Optional[TreeNode], targetSum: int) -> bool:
if root is None: return False
stack = [(root, 0), ]
while stack:
node, prevSum = stack.pop()
newSum = prevSum + node.val
if node.left is None and node.right is None and newSum == targetSum: return True
if node.left is not None: stack.append((node.left, newSum))
if node.right is not None: stack.append((node.right, newSum))
return False
<<: Day 23-state manipulation 之五:terraform import,专案中途导入 terraform 必经之路
使用TensorFlow.js建置DNN手写数字辨识分类器 不能观看的话可以点选连结: https:...
接续昨天的 XSS Lab(2)-1,今天继续解 https://alf.nu/alert1 Tem...
我们都要谈Django了,总不能连他是什麽都不知道吧? 那既然你都诚心诚意地发问了,那我就大发慈悲地...
相关分析 最常使用到的相关分析为皮尔森简单相关系数,就让我们来认识什麽是皮尔森简单相关系数吧! 皮尔...
报名铁人赛希望可以有每天学习一点的动力跟每天消化一点的开始! 初次报名,请多多指教XD 因为不知道要...