113. 路径总和 II

作者: ZMT_sherry | 来源:发表于2018-09-11 19:44 被阅读0次

    给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。

    说明: 叶子节点是指没有子节点的节点。

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

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

    返回:

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

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    class Solution:
        def __init__(self):
            self.result_path=[]
            self.temp_path=[]
    
        def pathSum(self, root, sum):
            """
            :type root: TreeNode
            :type sum: int
            :rtype: List[List[int]]
            """
            self.run_node(root,0,sum)
            return self.result_path
        def run_node(self,root,sum,result_sum):
            if root==None:
                #self.temp_path.clear()
                return
            if sum+root.val==result_sum and root.left==None and root.right==None:#stop
                self.temp_path.append(root.val)
                self.result_path.append(self.temp_path)
                self.temp_path=self.temp_path[:-1]
            else:
                self.temp_path.append(root.val)
                self.run_node(root.left,sum+root.val,result_sum)
                self.run_node(root.right,sum+root.val,result_sum)
                self.temp_path=self.temp_path[:-1]
            
    

    相关文章

      网友评论

        本文标题:113. 路径总和 II

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