要求:计算一个特殊表示的二叉树中所有路径的和
每个整数包含两部分信息:节点的位置和节点的值
` class Solution: def pathSum(self, nums: List[int]) -> int: if not nums: return 0
# 将树存储为字典,键为位置,值为节点值
tree = {x // 10: x % 10 for x in nums}
self.sum = 0
def dfs(node, cur_sum):
if node not in tree:
return
cur_sum += tree[node]
depth, pos = divmod(node, 10)
left = (depth + 1) * 10 + 2 * pos - 1
right = left + 1
if left not in tree and right not in tree: # 检查叶子节点
self.sum += cur_sum
else:
dfs(left, cur_sum)
dfs(right, cur_sum)
dfs(nums[0] // 10, 0)
return self.sum
`