二叉树中和为某一值的路径(二)
Last updated
Last updated
问题简述
给定二叉树 root 和目标值 target,返回所有和为 target 的路径。
规定路径必须从根节点开始到叶子节点。
思路:DFS
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param root TreeNode类
# @param target int整型
# @return int整型二维数组
#
class Solution:
def FindPath(self , root: TreeNode, target: int) -> List[List[int]]:
# write code here
ret = []
tmp = []
def dfs(node, k):
if not node: return
tmp.append(node.val)
k -= node.val
if not node.left and not node.right and k == 0:
ret.append(tmp[:])
dfs(node.left, k)
dfs(node.right, k)
k += node.val
tmp.pop()
dfs(root, target)
return ret