5
/ \
4 8
/ / \
11 13 4
/ \ / \
7 2 5 1
[
[5,4,11,2],
[5,8,4,5]
]
func pathSum(_ root: TreeNode?, _ target: Int) -> [[Int]] {
guard let rootV = root?.val else {
return []
}
var result: [[Int]] = []
let deta = target - rootV
var temp: [TreeNode] = []
if let left = root?.left {
temp.append(left)
}
if let right = root?.right {
temp.append(right)
}
if temp.isEmpty { // 到达叶节点了
if target == rootV {
result.append([rootV])
}
}
else {
temp.forEach { tree in
pathSum(tree, deta).forEach { datas in
result.append([rootV] + datas)
}
}
}
return result
}