zoukankan      html  css  js  c++  java
  • leetcode-113 路径之和

    leetcode-113 路径之和

    题目描述:

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

    解法一:找出所有路径,依次判断

    # 注意函数名和变量名字冲突
    class Solution:
        def pathSum(self, root: TreeNode, sum_: int) -> List[List[int]]:
            self.res = []
            self.findPath(root,[])
            return [v for v in self.res if sum(v)==sum_]
        
        
        def findPath(self,root,path):
            if not root:
                return
            if not root.left and not root.right:
                path.append(root.val)
                self.res.append(path)
                return 
            self.findPath(root.left,path+[root.val])
            self.findPath(root.right,path+[root.val])
    

    解法二:直接判断,满足就加进去,速度比第一个慢

    class Solution:
        def pathSum(self, root: TreeNode, sum_: int) -> List[List[int]]:
            self.res = []
            self.findPath(root,[],sum_)
            return self.res
        def findPath(self,root,path,sum_):
            if not root:
                return
            if not root.left and not root.right and root.val==sum_:
                # path.append(root.val)
                self.res.append(path+[root.val])
                return 
            self.findPath(root.left,path+[root.val],sum_-root.val)
            self.findPath(root.right,path+[root.val],sum_-root.val)
    
    class Solution:
        def pathSum(self, root: TreeNode, sum: int) -> List[List[int]]:
            if not root:
                return []
            self.path = []
            self.tmp = sum
            
            def calSum(tmp_path,now,root):
                if not root:
                    return False
                if not root.left and not root.right and root.val + now== self.tmp:
                    self.path.append(tmp_path+[root.val])
                if root.left:
                    calSum(tmp_path+[root.val],now+root.val,root.left)
                if root.right:
                    calSum(tmp_path+[root.val],now+root.val,root.right)
            calSum([],0,root)
            return self.path
    
  • 相关阅读:
    oracle 自动备份
    oracle 常用操作语句
    数据库创建及使用注意事项
    oracle 导入 导出 备份
    http://blog.sina.com.cn/s/blog_5fc8b3810100iw9n.html
    利用普通工具编译的第一个Servlet
    对java:comp/env的研究(转)
    MyEclipse配置tomcat、jdk和发布第一个web项目
    构建 SSH 框架(转)
    Java Project和Web Project
  • 原文地址:https://www.cnblogs.com/curtisxiao/p/11208210.html
Copyright © 2011-2022 走看看