剑指offer-判断B是不是A的子结构
2016-03-07 18:29
316 查看
题目描述
输入两颗二叉树A,B,判断B是不是A的子结构。<span style="color:#333333;">public class Solution001 { boolean result=false; </span><span style="color:#3333ff;">//先找到root1中是否有root2根节点元素相同值,相同就进入nextHasSubtree</span><span style="color:#333333;"> public boolean HasSubtree(TreeNode root1,TreeNode root2) { boolean result=false; if(root1!=null&&root2!=null){ if(root1.val==root2.val){ result=nextHasSubtree(root1,root2); } if(!result){ result=HasSubtree(root1.left, root2); } if(!result){ result=HasSubtree(root1.right, root2); } } return result; } //找到相同值,再判断后续元素的左右树是不是相同,若不相同在返回HasSubtree判断 private boolean nextHasSubtree(TreeNode root1, TreeNode root2) { // TODO Auto-generated method stub if(root2==null){ //这两个if判断顺序不能改变: return true; //因为一旦B树节点空就能判断是true } if(root1==null){ return false; } if(root1.val!=root2.val){ return false; } return nextHasSubtree(root1.left, root2.left)&& nextHasSubtree(root1.right, root2.right); } }</span>
相关文章推荐
- 实现倒三角样式
- iOS8后,系统自带BlurEffect 毛玻璃特效
- 操作CString 对象出错 未RealeaseBuffer
- jQuery.extend和jQuery.fn.extend的区别
- 解析json
- [nodejs] 格式化日期、ejs模板引擎改变.ejs为.html、mongoose查询所有
- Node.js写文件的三种方法
- Html 个人笔记
- react native
- Javascript智能社教程中关于scroll的右侧浮动框
- js中的for循环与异步回调函数执行顺序问题
- 特征处理(Feature Processing)
- javascript 获得上个月、获取下个月日期
- HTML中的div,section,article的区别
- jquery append执行script脚本
- JavaScript~
- HTML语意标签
- DOM访问HTML元素
- node.js文件图片上传
- 礼拜一log~SiteMesh技术 & 一些css技巧