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

    递归,DFS,用stack实现还没想好怎么弄。。

     1 /**
     2  * Definition for binary tree
     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 
    14         if(root == NULL)
    15             return false;
    16         if(root->left == NULL && root->right == NULL)
    17         {
    18             if(root->val == sum)
    19                 return true;
    20             else
    21                 return false;
    22         }
    23         bool left = false;
    24         bool right= false;
    25 
    26         if(root->left)
    27             left = hasPathSum(root->left, sum - root->val);
    28         if(root->right)
    29             right = hasPathSum(root->right, sum - root->val);
    30 
    31         return (left || right);
    32     }
    33 };
  • 相关阅读:
    JVM运行参数
    JVM学习
    自己瞎写的小项目随笔
    git入门
    @ResponseBody 注释
    jquery 正则表达式 验证邮箱 手机号 座机号 身份证
    ORACLE计算一年的12个月份
    css 图片 文字居中
    Jquery 取值相关
    标题栏下拉菜单
  • 原文地址:https://www.cnblogs.com/diegodu/p/3821700.html
Copyright © 2011-2022 走看看