zoukankan      html  css  js  c++  java
  • [Leetcode] Binary tree--112. Path Sum

    112. Path Sum

    Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.

    For example:
    Given the below binary tree and sum = 22,
                  5
                 / 
                4   8
               /   / 
              11  13  4
             /        
            7    2      1
    

    return true, as there exist a root-to-leaf path 5->4->11->2 which sum is 22.

    Solution:

    1. use iterative way;  bfs 

     1   if root is None:
     2             return False
     3         d = deque()
     4         
     5         d.append((root, root.val))
     6 
     7         while(len(d)):
     8             nodeInfo = d.popleft()
     9             node = nodeInfo[0]
    10             s = nodeInfo[1]
    11             if (not node.left) and (not node.right):
    12                 if s == sum:
    13                     return True
    14             if node.left:
    15                 d.append((node.left, s + node.left.val))
    16             if node.right:
    17                 d.append((node.right, s + node.right.val))
    18         return False

     2. use recursive way

     1         return self.haspathSumHelper(root, 0, sum)
     2         
     3     def haspathSumHelper(self, node, current, sum):
     4         
     5         if node is None:
     6             return False
     7         current += node.val
     8         if (not node.left ) and (not node.right):
     9             if current == sum:
    10                 return True
    11             else:
    12                 return False
    13             
    14         
    15         return self.haspathSumHelper(node.left, current, sum) or self.haspathSumHelper(node.right, current, sum)
     
  • 相关阅读:
    停止与暂停线程
    flume日志收集框架
    mysql数据库索引
    junit
    freemarker
    python脚本
    java多线程编程核心技术学习-1
    spring 网站
    [MongoDB]学习笔记--Linux 安装和运行MongoDB
    [Spring MVC]学习笔记--form表单标签的使用
  • 原文地址:https://www.cnblogs.com/anxin6699/p/7253723.html
Copyright © 2011-2022 走看看