树的子结构
来源:互联网 发布:淘宝网司法房产拍卖 编辑:程序博客网 时间:2024/05/21 17:42
题目描述
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
这里关键是用了两个递归,一个用来遍历树A找到与B根节点相等的节点,找到后用另外一个递归,判断A的以那个节点为根的子树是否含有与B的子树相同的结构。
代码:
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*///用两个递归,第一个递归遍历树1class Solution {public: bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2) { bool re=false; if(pRoot1==NULL||pRoot2==NULL) return false; if(pRoot1->val==pRoot2->val) re=DoesSubtreeEqual(pRoot1,pRoot2); if(!re) re=HasSubtree(pRoot1->left,pRoot2); if(!re) re=HasSubtree(pRoot1->right,pRoot2); return re; } //判断以p1为根节点的树1是否和树2有相同的结构 bool DoesSubtreeEqual(TreeNode* p1,TreeNode* p2){ if(p1==NULL&&p2!=NULL) return false; if(p2==NULL) return true; if(p1->val!=p2->val) return false; return DoesSubtreeEqual(p1->left,p2->left)&&DoesSubtreeEqual(p1->right,p2->right); }};
0 0
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 避免多请求同时指向一个接口设想
- 使用H-ui前端框架中表格改变列数出现的问题及解决方案
- H5 js 处理localstorage方法封装
- Linux--RH134---unit 10 selinux的初级管理
- JAVA如何取得HTTP请求头
- 树的子结构
- Array dimensions must match for binary array op.
- 使用SSM创建项目后,无法访问静态资源,报404错误解决办法
- 《Spring Cloud Netflix》 -- 服务注册和服务发现-Eureka 的使用
- 【LeetCode13】【Roman to Integer】
- 聊聊这个与代码优化有关的选择题 (某公司实习生招聘笔试试题)
- Android调用相机拍照并添加水印
- 综合整理日志打印工具
- 菜单之抽屉菜单(NavigationDrawer)