zoukankan      html  css  js  c++  java
  • Path Sum

    问:二叉树是否存在路径和等于sum的路径,若存在输出true,否则输出false
    分析:递归调用二叉树,每次将上一层的val值传递给子结点并加上子节点的val,当传递到某个结点为叶子结点时,判断其val值是否等于sum
    错点:二叉树为空,则无论sum为多少都为false,这个容易造成RE
            二叉树只有根节点,则直接判断其值与sum的关系

    class Solution
    {
    public:
        void PathSum(TreeNode *root,int val,int sum,int &flag)
        {
            root->val+=val;
            if(root->left==NULL && root->right==NULL && sum==root->val)
            {
                flag=1;
            }
            if(root->left) PathSum(root->left,root->val,sum,flag);
            if(root->right) PathSum(root->right,root->val,sum,flag);
        }
        bool hasPathSum(TreeNode *root, int sum)
        {
            if(root==NULL)
            {
                return false;
            }
            if(root->left==NULL && root->right==NULL)
            {
                if(root->val==sum) return true;
                return false;
            }
            int flag=0;
            if(root->left)  PathSum(root->left,root->val,sum,flag);
            if(root->right) PathSum(root->right,root->val,sum,flag);
            if(flag) return true;
            return false;
        }
    };
    

      

    class Solution
    {
    public:
        bool PathSum(TreeNode *root,int sum,int val)
        {
             if(root==NULL)  return false;
             val+=root->val;
             if(root->left==NULL && root->right==NULL)
             {
                 if(sum==val) return true;
                 return false;
             }
             return PathSum(root->left,sum,val) || PathSum(root->right,sum,val);
    
        }
        bool hasPathSum(TreeNode *root, int sum)
        {
           return PathSum(root,sum,0);
        }
    };
    

      

  • 相关阅读:
    人生转折点:弃文从理
    人生第一站:大三暑假实习僧
    监听器启动顺序和java常见注解
    java常识和好玩的注释
    182. Duplicate Emails (Easy)
    181. Employees Earning More Than Their Managers (Easy)
    180. Consecutive Numbers (Medium)
    178. Rank Scores (Medium)
    177. Nth Highest Salary (Medium)
    176. Second Highest Salary(Easy)
  • 原文地址:https://www.cnblogs.com/zsboy/p/3884073.html
Copyright © 2011-2022 走看看