博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
树的子结构
阅读量:7194 次
发布时间:2019-06-29

本文共 1228 字,大约阅读时间需要 4 分钟。

解题思路

  对于树的子结构,首先注意空树不是任何树的子结构,所以我们要先解决root1或者root2为空的情况,其次在root1中查看有没有root2的根节点,如果存在root2的根节点则比较两棵树是否相同

问题描述

  输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构

代码实现

1 /** 2 public class TreeNode { 3     int val = 0; 4     TreeNode left = null; 5     TreeNode right = null; 6  7     public TreeNode(int val) { 8         this.val = val; 9     }10 }11 */12 public class Solution {13     public boolean HasSubtree(TreeNode root1,TreeNode root2) {14         boolean flag = false;15         if(root2 == null || root1 == null) return false;16         if(root1.val == root2.val){17             flag = DoseHastree(root1, root2);18         }19         if(flag == false){20             flag = HasSubtree(root1.right, root2)||HasSubtree(root1.left, root2);21         }22         return flag;23     }24     public boolean DoseHastree(TreeNode root1, TreeNode root2){25         if(root2 == null) return true; //如果root2先遍历完这说明为root1的子结构26         if(root1 == null) return false;27         if(root1.val == root2.val){28             return DoseHastree(root1.left, root2.left)&&DoseHastree(root1.right, root2.right);29         }30         else{31             return false;32         }33     }34 }

 

转载于:https://www.cnblogs.com/wanglinyu/p/8525654.html

你可能感兴趣的文章
javah 的路径
查看>>
简单代码生成csv文件(excel)
查看>>
Android原生代码与html5交互
查看>>
hibernate.cfg.xml配置
查看>>
将零散文件使用ICSharpCode.SharpZipLib压缩打包后一次性下载
查看>>
java软引用和弱引用
查看>>
Python 爬取简单网页
查看>>
【机器学习】--xgboost初始之代码实现分类
查看>>
【强化学习篇】--强化学习从初识到应用
查看>>
获取图片
查看>>
过滤器
查看>>
软件工程个人作业02(四则运算)
查看>>
jQuery自动完成点击html元素
查看>>
关于随机数
查看>>
call和apply
查看>>
Java 使用Axis实现WebService实例
查看>>
「Vijos 1282」「OIBH杯NOIP2006第二次模拟赛」佳佳的魔法照片
查看>>
事件异步(EAP)使用事件异步处理一些耗时操作
查看>>
struts2配置
查看>>
HDU 5762 Teacher Bo 鸽巢原理
查看>>