zoukankan      html  css  js  c++  java
  • 113路径总和II

    class TreeNode:
    def __init__(self, x):
    self.val = x
    self.left = None
    self.right = None
    a = TreeNode(1)
    b = TreeNode(2)
    c = TreeNode(3)
    a.left = b
    a.right = c
    # 这道题和上一题是同一个类型的题目,用的方法是一样的。
    # 都是用深搜的方法,
    from typing import List
    class Solution:
    def pathSum(self, root: TreeNode, sum: int) -> List[List[int]]:
    # 定义一个列表,用来存放符合题意的路径。
    path_list = []
    self.dfs(root,sum,0,[],path_list)
    return path_list
    # num_list用来存放当前的节点值
    def dfs(self,root,sum,num_sum,num_list,path_list):
    # 如果根节点为None直接返回空列表。
    if not root :return num_list
    num_sum += root.val
    # 将每次遍历的节点值放进当前列表。
    num_list.append(root.val)
    # 当这个路径和等于目标和的时候,将当前列表放入路径列表
    if not root.left and not root.right and num_sum == sum:
    path_list.append(num_list[:])
    # 同时要将当前节点从当前了列表中删除
    num_list.pop()
    return
    if not root.left and not root.right and num_sum != sum:
    # 注意这里判断的是路径和不等于目标值的时候要做的事情。
    num_list.pop()
    return
    self.dfs(root.left,sum,num_sum,num_list,path_list)
    self.dfs(root.right,sum,num_sum,num_list,path_list)
    # 最后这里要把当前节点的值删除。
    num_list.pop()


    A = Solution()
    print(A.pathSum(a,4))
  • 相关阅读:
    微信小程序使用wxParse解析html
    git基本操作
    thinkphp 静态缓存设置
    phpstudy 安装memcached服务和memcache扩展
    CSS超出部分显示省略号…代码
    小程序支付
    phpstorm 快捷键2
    thinkphp session设置
    cookie与session
    微信小程序 setData动态设置数组中的数据
  • 原文地址:https://www.cnblogs.com/cong12586/p/13148743.html
Copyright © 2011-2022 走看看