设为首页 加入收藏

TOP

Path Sum
2015-07-20 17:32:54 来源: 作者: 【 】 浏览:3
Tags: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.

递归进行深度搜索

原题链接

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

 	}
 };


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Ural 1586 Threeprime Numbers(D.. 下一篇acdream 1234 Two Cylinders

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Bash 脚本教程——Li (2025-12-26 07:53:35)
·实战篇!Linux shell (2025-12-26 07:53:32)
·整理了250个shell脚 (2025-12-26 07:53:29)
·HyperText Transfer (2025-12-26 07:20:48)
·半小时搞懂 HTTP、HT (2025-12-26 07:20:42)