# Definition for a binary tree node.
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
a = TreeNode(1)
b = TreeNode(2)
c = TreeNode(3)
a.left = b
a.right = c
# 這道題還是比較容易的,只需要一遍深搜遍歷所有節點,然后找到所有的左葉子節點就好了,
class Solution:
def sumOfLeftLeaves(self, root: TreeNode) -> int:
# 首先判斷root為空的時候直接回傳None
if not root:
return 0
# 定義一個變數用來接收和,
self.total = 0
# 函式遞回
self.dfs(root, 1)
return self.total
# 我們在這里傳入一個標志位,遞回左子樹為0,
def dfs(self, root, flag):
# 如果為葉子節點且標志位為0,就加上對應的值,
if not root.left and not root.right and flag == 0:
self.total += root.val
# 接著遞回就好了,
if root.left:
self.dfs(root.left, 0)
if root.right:
self.dfs(root.right, 1)
A = Solution()
print(A.sumOfLeftLeaves(a))
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/107541.html
標籤:其他
