LeetCode解题报告 112. Path Sum [easy]

原创 2017年01月03日 11:13:01

题目要求

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。用最基本的DFS即可,判断该节点左右子树是否为空且节点值等于sum,如果是则返回true,而后将sum的值减去跟节点的val值,递归循环判断左孩子节点和右孩子节点,其中一个满足即可。

复杂度分析

时间复杂度为O(N)

代码如下:

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


LeetCode 112 — Path Sum(C++ Java Python)

题目: 题目翻译: 分析: C++实现: Java实现: Python实现: 感谢阅读,欢迎评论!...
  • dragon_dream
  • dragon_dream
  • 2014年04月03日 16:01
  • 2307

LeetCode112——Path Sum

Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all...
  • booirror
  • booirror
  • 2015年01月13日 18:34
  • 3302

[C++]LeetCode: 90 Path Sum

题目: Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding u...
  • cinderella_niu
  • cinderella_niu
  • 2015年01月12日 15:01
  • 790

LeetCode(112) Path Sum

题目Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up a...
  • fly_yr
  • fly_yr
  • 2015年10月19日 12:53
  • 525

[Leetcode] 112. Path Sum 解题报告

题目: Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that ...
  • magicbean2
  • magicbean2
  • 2017年04月26日 10:24
  • 144

[leetcode] 112. Path Sum 解题报告

题目链接:https://leetcode.com/problems/path-sum/ Given a binary tree and a sum, determine if the tree ...
  • qq508618087
  • qq508618087
  • 2015年12月24日 15:55
  • 245

【LeetCode-112】Path Sum(C++)

题目要求:判断一棵二叉树中是否存在一个从根到叶子的路径,使得这条路径上所有数之和为给定的值sum。 解题思路:很简单的递归实现。 /** * Definition for a binary tr...
  • liujiayu1015
  • liujiayu1015
  • 2016年09月08日 11:45
  • 200

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...
  • gao1440156051
  • gao1440156051
  • 2016年07月04日 11:17
  • 484

【leetcode c++】 112 Path Sum

Path Sum   Given a binary tree and a sum, determine ifthe tree has a root-to-leaf path such that a...
  • hqq39
  • hqq39
  • 2015年07月31日 23:27
  • 406

LeetCode *** 112. Path Sum

题目: Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding u...
  • treeshy
  • treeshy
  • 2016年04月09日 17:12
  • 106
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode解题报告 112. Path Sum [easy]
举报原因:
原因补充:

(最多只允许输入30个字)