美文网首页
LeetCode 113 二叉树中和为某一值的路径

LeetCode 113 二叉树中和为某一值的路径

作者: JunfengsBlog | 来源:发表于2020-03-01 10:45 被阅读0次

    输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。

    示例:
    给定如下二叉树,以及目标和 sum = 22,

              5
             / \
            4   8
           /   / \
          11  13  4
         /  \    / \
        7    2  5   1
    

    返回:

    [
    [5,4,11,2],
    [5,8,4,5]
    ]


    这种题是锻炼深度遍历非常好的题。也是考察代码能力和思考能力非常好的题。鉴于我也是还在理解,记忆和 内化中。给出代码,非常建议把这个代码背下来当模板,其实背的过程也是理解和内化的过程,再继续做类似的题之后会慢慢理解并且记得很牢固,类似的变体题目也可以解决。

    class Solution:
        def __init__(self):
            self.resList = []
            self.array = []
        
        def pathSum(self, root: TreeNode, sum: int) -> List[List[int]]:
            if not root:
                return []
            self.array.append(root.val)
            sum -= root.val
            if sum == 0 and not root.left and not root.right:
                self.resList.append(self.array[:])
            self.pathSum(root.left, sum)
            self.pathSum(root.right, sum)
            self.array.pop()
            
            return self.resList
    

    相关文章

      网友评论

          本文标题:LeetCode 113 二叉树中和为某一值的路径

          本文链接:https://www.haomeiwen.com/subject/kdhxkhtx.html