剑指offer-二叉树中和为某一值的路径(python)

感觉递归这种的都不好像,要么重新再写一个def,要么设置一个bool,很难啊。

# -*- 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
        res=[]
        if not root:
            return []
        if root and not root.left and not root.right and root.val == expectNumber:
            return [[root.val]]
        res = []
        left = self.FindPath(root.left, expectNumber-root.val)
        right = self.FindPath(root.right, expectNumber-root.val)
        for i in left+right:
            res.append([root.val]+i)
        return res
发布了69 篇原创文章 · 获赞 46 · 访问量 5266

猜你喜欢

转载自blog.csdn.net/qq_42738654/article/details/104255540