<span style="font-size:18px;">/*************************************************************************
> File Name: Path_Sum.cpp
> Author:
> Mail:
> Created Time: 2014年08月24日 星期日 13时40分40秒
************************************************************************/
/************************************************************************
* Description: 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.
*
* **********************************************************************/
#include<iostream>
using namespace std;
#include<stdio.h>
#include<stack>
struct node
{
public:
node()
{
// i++;
left = NULL;
right = NULL;
// data = i;
}
//static int i;
int data;
struct node *left;
struct node *right;
};
//int node::i = 0;
typedef struct node * Node;
Node root = NULL;
void list_Create()
{
root = new struct node;
root->data = 5;
Node node1 = new struct node;
node1->data = 4;
root->left = node1;
Node node2 = new struct node;
node2->data = 8;
root->right = node2;
Node node3 = new struct node;
node3->data = 11;
node1->left = node3;
Node node4 = new struct node;
node4->data = 18;
node2->left = node4;
Node node5 = new struct node;
node5->data = 4;
node2->right = node5;
Node node6 = new struct node;
node6->data = 7;
node3->left = node6;
Node node7 = new struct node;
node7->data = 2;
node3->right = node7;
Node node8 = new struct node;
node8->data = 1;
node5->right = node8;
}
stack<int> Stack;
bool Path_Sum(Node root, int sum)
{
if(root->left == NULL && root->right == NULL && sum- (root->data) == 0)
{
return true;
}
if(root->left != NULL)
{
if(Path_Sum(root->left, sum - (root->data)))
{
return true;
}
}
if(root->right != NULL)
{
if(Path_Sum(root->right,sum - root->data))
{
return true;
}
}
return false;
}
int main()
{
list_Create();
if(Path_Sum(root,19))
{
printf("OK");
}
else
{
printf("FALSE");
}
}</span>
Path_Sum
最新推荐文章于 2022-08-05 09:48:13 发布
