leetcode【DFS】-----112. Path Sum(路径总和)

1、题目描述

2、分析

        DFS边界条件是如果传进来的节点为空,说明前面没找到则返回false,如果左右子节点都为空并且传进来的sum-val等于0,则返回true,递归处理左右子节点就好。

3、代码

/**
 * 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==NULL) return false;
        if((root->left==NULL&&root->right==NULL)&&root->val-sum==0) return true;
        return hasPathSum(root->left,sum-root->val)||hasPathSum(root->right,sum-root->val);
    }
};

4、相关知识点

        DFS相关的边界条件其实是递归最难的地方,所以就需要考虑很多。

posted @ 2019-07-13 19:48  吾之求索  阅读(130)  评论(0)    收藏  举报