day14之判断一个节点是否在一棵二叉树中+判断一颗二叉树是是否是另一颗树的子树
来源:互联网 发布:朱元璋 知乎 编辑:程序博客网 时间:2024/06/05 02:24
- 判断一个节点是否在一棵二叉树中
struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};bool IsInTree(TreeNode *node, TreeNode *root){ if(root == NULL) return false; if(root->val == node->val) return true; if(IsInTree(node, root->left)) //在左子树上找 return true; return IsInTree(node, root->right); //在右子树上找。}
- 判断一颗二叉树是是否是另一颗树的子树(我们约定空树不是任意一个树的子结构)tree2是tree1的子树
struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};bool Subtree(TreeNode *pRoot1, TreeNode *pRoot2){ if(pRoot2 == NULL) //如果root2这棵树匹配完了,说明这颗树是子树。 return true; if(pRoot1 == NULL)//如果root2这棵树都没完,root1这棵树却先完了,肯定不是子树了。 return false; if(pRoot1->val != pRoot2->val) { return false; } return Subtree(pRoot1->left, pRoot2->left) && Subtree(pRoot1->right, pRoot2->right); //31~35这种形式写代码,表示只要一个节点不满足,整棵树就不满足某个性质。}bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2){ if(pRoot1 == NULL || pRoot2 == NULL) return false; /* if(pRoot1->val == pRoot2->val) //在pRoot1中找到一个节点和pRoot2中的根节点相同。 return Subtree(pRoot1, pRoot2); if(HasSubtree(pRoot1->left, pRoot2) ) return true; return HasSubtree(pRoot1->right, pRoot2); */ //这种形式找root2的根节点,只能找一次,现在是可能要找多次,可能前面几次找到的根节点,左右子树是不相同的。 bool result = false; if(pRoot1->val == pRoot2->val) { result = Subtree(pRoot1, pRoot2); } if(!result) result = HasSubtree(pRoot1->left, pRoot2); if(!result) result = HasSubtree(pRoot1->right,pRoot2); return result;}
阅读全文
0 0
- day14之判断一个节点是否在一棵二叉树中+判断一颗二叉树是是否是另一颗树的子树
- 【判断一个节点是否在一棵二叉树中】/【判断一颗二叉树是是否是另一颗树的子树】
- 判断一个节点是否在一棵二叉树中&判断一颗二叉树是是否是另一颗树的子树
- 判断一个节点是否在一棵二叉树中&&判断一颗二叉树是是否是另一颗树的子树
- 判断一个节点是否在一棵二叉树中和判断一颗二叉树是否是另一颗树的子树——题集(十二)
- 判断一颗二叉树是是否是另一颗树的子树
- 判断一颗二叉树是是否是另一颗树的子树。
- 判断一颗二叉树是是否是另一颗树的子树
- 判断一颗二叉树是是否是另一颗树的子树。
- 判断一颗二叉树是是否是另一颗树的子树。比如tree2是tree1的子树
- 判断一棵二叉树是否是另一棵二叉树的子树
- 判断一颗二叉树是否是另一颗树的子树
- 百度笔试题:判断一个二叉树是否是另一颗二叉树的子树
- 判断一棵二叉树是否是另一棵树的子树
- 二叉树--判断一颗二叉树是是否是另一颗树的子树。比如tree2是tree1的子树。
- 判断一棵二叉树是否是二叉树的子树
- day12之判断一棵二叉树是否是平衡二叉树+求一颗二叉树的镜像+判断一个数在二维数组中是否存在
- 判断一个节点是否在一棵二叉树中
- Struts2的表单标签
- text analysis
- 数据处理流程
- 查询Oracle正在执行和执行过的SQL语句
- Git 基本操作命令
- day14之判断一个节点是否在一棵二叉树中+判断一颗二叉树是是否是另一颗树的子树
- HDU-6040 Hints of sd0061(线性找第k小)
- jQuery的选择器
- 如何进入uburtu的su模式(#)
- Java日期时间
- List中toArray()的使用方法
- 分区恢复之 FAT32分区 详解
- java 关键字
- mysql 下载安装配置