题目描述
输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)
Python解答
# -*- 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):
# write code here
if not root:
return []
path, result = [], []
def FindOnePath(root):
path.append(root.val)
if (not root.left) and (not root.left) and sum(path) == expectNumber:
result.append(path[:]) # 深拷贝
if sum(path) < expectNumber:
if root.left:
FindOnePath(root.left)
if root.right:
FindOnePath(root.right)
path.pop() # 都不满足,则再删掉
FindOnePath(root)
return result