• [刷题] 437 Paths Sum III


    要求

    • 给出一棵二叉树及一个数字sum,判断这棵二叉树上存在多少条路径,其路径上的所有节点和为sum
    • 路径不一定始于根节点,终止于叶子节点
    • 路径要一直向下

    思路

    • 分情况讨论:根节点在路径上(8) / 根节点不在路径上(9-10)
    • 递归嵌套递归

    实现

     1 class Solution {
     2 public:
     3     int pathSum(TreeNode* root, int sum) {
     4         
     5         if( root == NULL )
     6             return 0;
     7         
     8         int res = findPath( root , sum );
     9         res += pathSum( root->left , sum );
    10         res += pathSum( root->right , sum );
    11         
    12         return res;
    13     }
    14     
    15 private:
    16     // 根节点在路径上 
    17     int findPath( TreeNode* node, int num ){
    18         
    19         if( node == NULL )
    20             return 0;
    21         
    22         int res = 0;
    23         if( node->val == num )
    24             res += 1;
    25         
    26         res += findPath( node->left , num - node->val );
    27         res += findPath( node->right , num - node->val );
    28         
    29         return res;
    30         
    31     }
    32 };
    View Code
  • 相关阅读:
    springboot、监听器
    springboot、拦截器
    Thymeleaf模板引擎
    springboot-banner.txt
    springboot,swagger2
    springboot 热部署
    判断是否为微信环境下打开的网页
    后台接收json数据
    ios 面试题
    iOS 适配问题
  • 原文地址:https://www.cnblogs.com/cxc1357/p/12683990.html
Copyright © 2020-2023  润新知