设为首页 加入收藏

TOP

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

评论

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

·Asus Armoury Crate (2025-12-26 02:52:33)
·WindowsFX (LinuxFX) (2025-12-26 02:52:30)
·[ Linux运维学习 ] (2025-12-26 02:52:27)
·HTTPS 详解一:附带 (2025-12-26 02:20:37)
·TCP/IP协议到底在讲 (2025-12-26 02:20:34)