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))
  • 相关阅读:
    【Jmeter】 jmeter-server.bat 无法启动
    Jmeter场景设置与监听
    Jmeter性能测试配置
    【VMware】“该虚拟机似乎正在使用中”
    Jmeter介绍以及脚本制作与调试
    性能测试简介
    robotframework配置邮箱服务器
    Java冒泡排序
    LN(A)MT单机版架构部署
    Openstack之八:部署自服务网络
  • 原文地址:https://www.cnblogs.com/cong12586/p/13148743.html
Copyright © 2011-2022 走看看