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);
            
        }
    };
  • 相关阅读:
    2020.10.31
    2020.10.26
    2020.10.29
    2020.10.28动手动脑+验证
    2020.11.1(每周学习总结)
    2020.10.30
    2020.11.2动手动脑➕课后试验性问题
    Javascript权威指南阅读笔记第3章类型、值和变量(1)
    【一个小功能】从js判断ie版本,浅谈navigator对象的appName属性
    【Vue】vif与vshow的区别
  • 原文地址:https://www.cnblogs.com/pk28/p/7228189.html
Copyright © 2011-2022 走看看