1. 程式人生 > 實用技巧 >129求根到葉子節點數字之和

129求根到葉子節點數字之和

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 sumNumbers(self, root: TreeNode) -> int:
# 定義一個變數,用來儲存最後的和
self.sum_num = 0
# 判斷二叉樹是否為空,如果為空,直接返回0
if not root : return 0
def dfs(root,num):
# 判斷當前節點是否為空
if not root:return
# 根據題意進行相加。
num = num * 10 + root.val
# 注意這裡,不能讓他走到節點為空的那一層,那樣的話就多算一遍。
if not root.left and not root.right:
self.sum_num = self.sum_num + num
return
# 然後分別遞迴左右子樹
dfs(root.left,num)
dfs(root.right,num)
dfs(root,0)
# 最後返回計算出來的結果
return self.sum_num
A = Solution()
print(A.sumNumbers(a))