判断一个节点是否在一颗二叉树中:
#include<iostream>
//#include<stack>
using namespace std;
struct TreeNode
{
int value;
TreeNode* left;
TreeNode* right;
TreeNode(int x)
:value(NULL)
, left(NULL)
, right(NULL)
{}
};
bool IsIntree(TreeNode*root, int x)
{
if (root == NULL)
return false;
if (root->value == x)
return true;
return IsIntree(root->left, x) || IsIntree(root->right, x);
}
那我们如何判断一棵树是否存在与另外一棵树中:
比如:
分析原理:
我们分两步,第一步在树A中找到和B树一样的根节点R,第二步是判断在相同的根节点下有没有相同的左右子树。
实现的代码:
#include<iostream>
//#include<stack>
using namespace std;
struct TreeNode
{
int _value;
TreeNode* _left;
TreeNode* _right;
TreeNo