1. 程式人生 > >python劍指offer系列二叉樹中和為某一值的路徑

python劍指offer系列二叉樹中和為某一值的路徑

not 和為某一值的路徑 python 數組長度 self. expect pytho def lis

題目描述

輸入一顆二叉樹的跟節點和一個整數,打印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。(註意: 在返回值的list中,數組長度大的數組靠前)
# -*- 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 []
        if root.val == expectNumber and not root.left and not root.right:
            return [[root.val]]
        result = []
        left = self.FindPath(root.left, expectNumber - root.val)
        right = self.FindPath(root.right, expectNumber - root.val)
        for i in left + right:
            result.append([root.val] + i)#????不太懂,花點時間想想
        return result

python劍指offer系列二叉樹中和為某一值的路徑