zoukankan      html  css  js  c++  java
  • 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.

    一开始被这题目坑了,因为叶子节点的左右孩子都是NULL  后捞改了一下代码  过了

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        
        bool hasPathSum1(TreeNode* root, int sum) {
            if (root == NULL){
                if (sum == 0) return true;
                return false;
            }
            if (root->left == NULL) return hasPathSum1(root->right,sum - root->val);
            else if (root->right == NULL) return hasPathSum1(root->left,sum - root->val);
            else return  (hasPathSum1(root->left,sum - root->val) || hasPathSum1(root->right,sum - root->val));
        }
        bool hasPathSum(TreeNode* root, int sum) {
            if (root == NULL) return false;
            return hasPathSum1(root, sum);
        }
    };
    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        bool hasPathSum(TreeNode* root, int sum) {
            
            if(!root) return false;
            if(sum == root->val && root->left==NULL &&root->right == NULL) return true;
             
            return hasPathSum(root->left, sum-root->val)||hasPathSum(root->right, sum-root->val);
            
        }
    };
  • 相关阅读:
    php学习【1】
    网页项目源码笔记
    python学习笔记
    php集成开发环境xampp的搭建
    ubuntu18.04.1LTS系统远程工具secureCRT
    关于IT人的一些消遣区
    linux系统的启动过程简要分析
    【shell脚本学习-1】
    Linux命令总结--cat命令
    Linux命令总结--vi/vim命令
  • 原文地址:https://www.cnblogs.com/pk28/p/7228189.html
Copyright © 2011-2022 走看看