zoukankan      html  css  js  c++  java
  • [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
  • 相关阅读:
    需求分析作业01
    2016年秋季个人阅读计划
    个人总结
    梦断代码读后感03
    进度条16
    我的第一个小系统总结
    进度条15
    eclipse连接SqlServer2008(被它搞得惨兮兮)
    梦断代码读后感02
    Android ViewPager刷新解析
  • 原文地址:https://www.cnblogs.com/loadofleaf/p/5502369.html
Copyright © 2011-2022 走看看