劍指offer——二叉樹中和爲某一值的路徑

題目描述

輸入一顆二叉樹的跟節點和一個整數,打印出二叉樹中結點值的和爲輸入整數的全部路徑。路徑定義爲從樹的根結點開始往下一直到葉結點所通過的結點造成一條路徑。(注意: 在返回值的list中,數組長度大的數組靠前)
遞歸思想
# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
import copy
class Solution:
    # 返回二維列表,內部每一個列表表示找到的路徑
    def FindPath(self, root, expectNumber):
        # write code here
        results=[]
        if root==None:
            return []
        elif root.left==None and root.right==None and expectNumber==root.val:
                return [[root.val]]
        else:
            left=self.FindPath(root.left,expectNumber-root.val)
            right=self.FindPath(root.right,expectNumber-root.val)
            for iterm in left+right:
                results.append([root.val]+iterm)
            return results
相關文章
相關標籤/搜索