# binary Tree 的DFS path設計細節 https://leetcode.com/problems/path-sum/ ## 注意細節 區域變數 和全域變數問題 我們要得出每一條路徑的總total,遞迴會持續累加沒錯,記得遞迴經典例子:階層: 5! 但是下面的DFS 卻可以得到不同路徑的path ,**這是因為區域變數 和全域變數問題** 如果我們把sum設在function外面,會是全域,那他會隨著recursive 去做持續性累加。 但是如果再function 內 ,下面code中他每一個 cur_sum都是新的local variable 所以彼此不會衝突。 ```python= def tree_traversal(root, curr_sum, ans): curr_sum += root.val if root.left is None and root.right is None: if curr_sum == targetSum: ans[0] = True if root.left: tree_traversal(root.left, curr_sum, ans) if root.right: tree_traversal(root.right, curr_sum, ans) if root: tree_traversal(root, 0, ans) return ans[0] ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up