程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Path Sum

Path Sum

編輯:C++入門知識

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));

 	}
 };


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved