题目
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
思路
递归
代码
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# 返回二维列表,内部每个列表表示找到的路径
def __init__(self):
self.res_list = []
def Find(self, root, expectNumber, num_list):
num_list.append(root.val)
expectNumber -= root.val
if not root.left and not root.right and expectNumber == 0:
self.res_list.append(num_list[:])
if root.left:
self.Find(root.left, expectNumber, num_list[:])
if root.right:
self.Find(root.right, expectNumber, num_list[:])
def FindPath(self, root, expectNumber):
# write code here
if root:
self.Find(root, expectNumber, [])
return self.res_list