牛客-剑指offer-树的子结构
来源:互联网 发布:c语言定义变量的数组 编辑:程序博客网 时间:2024/06/07 02:42
一、题目描述
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
二、解题思路
给定两棵二叉树A和B,判断B是不是A的子结构。
如图所示,左边为A树,右边为B树;开始比较时,首先比较A的root节点值和B的root节点值是不是相等,如果不相等,则开始比较A的root的左节点值和B的root节点值比较,发现两者相等,则开始比较A的root的左节点的左节点值和B的root的左节点值比较,以此类推。可以发现,该比较过程需要两个递归,第一个递归寻找A中与Broot节点值相等的节点;第二个递归用来比较其他的值是否相等。
三、代码
/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class Solution { public boolean HasSubtree(TreeNode root1,TreeNode root2) { if(root1==null || root2==null) return false; return isSubtree(root1,root2) || HasSubtree(root1.left,root2) || HasSubtree(root1.right,root2); } private boolean isSubtree(TreeNode root1,TreeNode root2){ if(root1==null && root2!=null) return false; if(root2==null) return true; if(root1.val==root2.val){ return isSubtree(root1.left,root2.left) && isSubtree(root1.right,root2.right); } return false; }}
0 0
- 牛客-剑指offer-树的子结构
- 剑指offer:判断树的子结构
- 【剑指offer】树的子结构
- 【剑指offer】Q18:树的子结构
- 剑指offer--17树的子结构
- 剑指offer--树的子结构
- 剑指Offer之 - 树的子结构
- 剑指offer 18 - 树的子结构
- 剑指Offer-树的子结构
- 剑指offer之树的子结构
- 《剑指offer》树的子结构
- 剑指offer—树的子结构
- 剑指Offer-18-树的子结构
- 剑指offer:树的子结构
- 【剑指offer】之树的子结构
- 剑指offer 17 树的子结构
- 剑指offer 树的子结构
- 剑指offer:树的子结构
- 依赖注入
- runTime 基本用法
- 关于C++编程的总结
- 第一次使用Android Studio时你应该知道的一切配置
- 如何添加Eclipse代码模板
- 牛客-剑指offer-树的子结构
- Java Object你真的了解了吗
- json转换工具
- 自定义类加载器[0]
- HRBUST1200 装修
- ibatis使用-动态创建表
- IDEA2016 激活码
- caffe-windows编译
- TICK技术栈 -- DevOps轻量级监控解决方案