树的子结构
2016-06-21 12:35
197 查看
题目
输入两颗二叉树A,B,判断B是不是A的子结构。解题
子结构:B完全在A中,不要求B的叶子节点是A的叶子结点找到开始相等的点,完全比较
否则,左右子树比较
/** 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 r1,TreeNode r2) { if(r1== null && r2 == null) return false; if(r1==null && r2!=null) return false; if(r1!=null && r2==null) return false; if(r1.val== r2.val){ if(isSubTree(r1,r2)) return true; } if(HasSubtree(r1.left,r2))// 比较左子树 return true; else return HasSubtree(r1.right,r2); // 比较右子树 } // 判断以r2是否是r1的一部分,同时是一r1结点开始比较 public boolean isSubTree(TreeNode r1,TreeNode r2){ if(r1== null && r2 == null) return true; if(r1==null && r2!=null) return false; if(r1!=null && r2==null) return true; if(r1.val == r2.val){ return isSubTree(r1.left,r2.left) && isSubTree(r1.right,r2.right); } return false; } }
相关文章推荐
- (36)老版和新版API调用
- Android开发学习之路-Android Studio开发小技巧
- 非宿主机外部访问docker容器问题
- FTP服务搭建
- Java并发编程与技术内幕:ThreadFactory、ThreadLocal
- job的执行
- cocoapods pod setup
- 使用GitBook编写文档
- Oracle 11G在用EXP 导出时,空表不能导出解决
- 右值引用、左值引用、指针、RVO优化
- 网络推广之如何写好软文?
- Poj 3041 Asteroids【最小点覆盖】
- 友盟多渠道打包
- ROS学习--人脸识别NODE
- [Swift]ViewController中xib控件为空
- XCTest 报错找不到cocoapods导入的库
- 基于Jersey的RESTful学习
- iptables日志分析视频教程
- Android多选列表
- KNN算法