剑指offer----树的子结构
来源:互联网 发布:网站js被劫持 编辑:程序博客网 时间:2024/06/10 01:52
package offer;/** * 输入两棵二叉树A,B,判断B是不是A的子结构。 (ps:我们约定空树不是任意一个树的子结构) * * @author liu * */public class HasSubTree { public boolean HasSubtree(TreeNode root1, TreeNode root2) { // 定义一个boolean值,用作后续判断 boolean flag = false; // 如果子数为null,直接返回false if (root2 == null) return false; // 如果子树不为null,并且父树为空返回false if (root1 == null && root2 != null) return false; //判断两棵树的根节点的值是否相等 if (root1.val == root2.val) { //判断当前节点的左右节点是否相等,也就是判断root2是不是root1的子树 flag = isSubTree(root1, root2); } //如果根节点不相等,就先尝试root1的左节点,也就是陆续判断左子树 if (!flag) { flag = HasSubtree(root1.left, root2); //左子树没有找到,再判断右子树 if (!flag) { flag = HasSubtree(root1.right, root2); } } return flag; } //判断是不是子树 private boolean isSubTree(TreeNode root1, TreeNode root2) { if (root2 == null) return true; if (root1 == null && root2 != null) return false; //如果根节点的值相等 if (root1.val == root2.val) { //当且仅当,两根节点的左节点与右节点一一对应,才返回true return isSubTree(root1.left, root2.left) && isSubTree(root1.right, root2.right); } else { return false; } }}class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}
0 0
- 剑指offer:判断树的子结构
- 【剑指offer】树的子结构
- 【剑指offer】Q18:树的子结构
- 剑指offer--17树的子结构
- 剑指offer--树的子结构
- 剑指Offer之 - 树的子结构
- 剑指offer 18 - 树的子结构
- 剑指Offer-树的子结构
- 剑指offer之树的子结构
- 《剑指offer》树的子结构
- 剑指offer—树的子结构
- 剑指Offer-18-树的子结构
- 剑指offer:树的子结构
- 【剑指offer】之树的子结构
- 剑指offer 17 树的子结构
- 剑指offer 树的子结构
- 剑指offer:树的子结构
- [剑指offer]树的子结构
- 前端js经典面试题目
- HDU
- Socket流程
- linux后台运行和关闭、查看后台任务
- 课程设计.判断是否只有一个main函数
- 剑指offer----树的子结构
- python进阶学习笔记(五)——创建实例属性、初始化实例属性
- 约束高级属性Content Compression Resistance Priority和Content Hugging Priority
- 【用例】测试用例编写的一些问题
- 在windows上使用Thrift生成PHP代码
- 排序总结
- bootstrap详解-栅格布局
- 题目1037:Powerful Calculator
- 为什么InnoDB表要建议用自增列做主键而MyISAM不需要