[LeetCode]题解(python):113 Path Sum II
题目来源
https://leetcode.com/problems/path-sum-ii/
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.
题意分析
Input: a binary tree, sum
Output: list of list.
Conditions: 给定一个二叉树,将所有root-leaf的路径值和等于sum的路径返回。
题目思路
通过一个valuelist传递。dfs递归
AC代码(Python)
1 # Definition for a binary tree node. 2 # class TreeNode(object): 3 # def __init__(self, x): 4 # self.val = x 5 # self.left = None 6 # self.right = None 7 8 class Solution(object): 9 def pathSum(self, root, sum): 10 """ 11 :type root: TreeNode 12 :type sum: int 13 :rtype: List[List[int]] 14 """ 15 def dfs(root, currsum, valuelist): 16 if root.left == None and root.right == None: 17 if currsum == sum: res.append(valuelist) 18 if root.left: 19 dfs(root.left, currsum+root.left.val, valuelist+[root.left.val]) 20 if root.right: 21 dfs(root.right, currsum+root.right.val,valuelist+[root.right.val]) 22 23 res = [] 24 if root ==None: return res 25 dfs(root, root.val, [root.val]) 26 return res