题解 | #二叉树中和为某一值的路径#
二叉树中和为某一值的路径
http://www.nowcoder.com/practice/b736e784e3e34731af99065031301bca
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# 返回二维列表,内部每个列表表示找到的路径
def FindPath(self, root, expectNumber):
ans=[]
# write code here
# self.tmp=[]
# self.sums=0
def dfs(tmp,sums,tree):
tmp.append(tree.val)
sums=sums+tree.val
if tree.left==None and tree.right==None:
if sums==expectNumber:
ans.append(tmp.copy())
return
elif tree.left==None:
dfs(tmp, sums, tree.right)
tmp.pop()
elif tree.right==None:
dfs(tmp, sums, tree.left)
tmp.pop()
else:
dfs(tmp,sums,tree.left)
tmp.pop()
dfs(tmp,sums,tree.right)
tmp.pop()
if root==None:
return []
dfs([],0,root)
return ans 