zoukankan      html  css  js  c++  java
  • leetcode 112

    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.

    判断二叉树是否存在一条从根节点到叶子节点的路径是的路径上节点的值之和等于给定的数sum,若存在返回true,否则返回false。

    递归解法:每次递归sum都减去当前节点的值,当sum为0且当前节点为叶子节点时返回true;当sum不为0且当前节点为叶子节点时返回false;当sum不为0且当前

                     节点不为叶子节点时,根据当前节点的左右子树的情况,返回左子树的递归调用或右子树的递归调用或者是两者的或(||)。

    代码如下:

     1 /**
     2  * Definition for a binary tree node.
     3  * struct TreeNode {
     4  *     int val;
     5  *     TreeNode *left;
     6  *     TreeNode *right;
     7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     8  * };
     9  */
    10 class Solution {
    11 public:
    12     bool hasPathSum(TreeNode* root, int sum) {
    13         if(root == NULL)
    14         {
    15             return false;
    16         }
    17         sum -= root->val;
    18         if(sum == 0 && root->left == NULL && root->right == NULL)
    19         {
    20             return true;
    21         }
    22         else if(root->left == NULL && root->right == NULL)
    23         {
    24             return false;
    25         }
    26         else if(root->left == NULL)
    27         {
    28             return hasPathSum(root->right, sum);
    29         }
    30         else if(root->right == NULL)
    31         {
    32             return hasPathSum(root->left, sum);
    33         }
    34         else
    35         {
    36             return hasPathSum(root->right, sum) || hasPathSum(root->left, sum); 
    37         }
    38     }
    39 };
  • 相关阅读:
    逐个图片保存成视频
    GitHub搜索
    用cmd运行jmeter并生成报告
    jmeter-json提取器提取的内容含”引号
    jmeter-JSON提取器
    git 上传Access denied解决方法
    Jmeter鲜为人知的jsonpath用法
    selenium 安装流程、下载chromedriver
    jmeter-抓取数据库数据,循环请求1000次(变量嵌套变量)
    jmeter—获取当前时间(年、月、日),往前/往后n天
  • 原文地址:https://www.cnblogs.com/shellfishsplace/p/5915393.html
Copyright © 2011-2022 走看看