剑指offer-面试题18-树的子结构
2017-01-19 11:32
225 查看
题目描述:输入两棵二叉树A 和B,判断B 是不是A 的子结构。
题目分析:先寻找跟子树根结点相等的结点,找到后再去比较其左右子树是否相等
//查找是否树的的子结构 public static boolean matchBinaryTree(BinaryTreeNode tree1, BinaryTreeNode tree2) { if (tree2 == null) {//树2的结点为空,就表示前面的都匹配成功了,直接返回true return true; } if (tree1 == null) {//逃过上面那步,如果树1为空了,那必然是不是子树 return false; } if (tree1.value == tree2.value) {//使用递归比较子树 return matchBinaryTree(tree1.left, tree2.left) && matchBinaryTree(tree1.right, tree2.right); } return false; } public static boolean isSubTree(BinaryTreeNode tree,BinaryTreeNode sub){ if(sub ==null){ return true; } if(tree == null){ return false; } if(tree.value == sub.value){//找到根节点相等就开始匹配 return matchBinaryTree(tree,sub); } //如果没有找到,就继续寻找到能跟sub树根结点相等的结点 return isSubTree(tree.left,sub)||isSubTree(tree.right,sub); }
相关文章推荐
- 【剑指offer】面试题18:树的子结构
- 【剑指offer】面试题18:输入两颗二叉树A和B,判断B是不是A的子结构?
- 剑指Offer--面试题18:数的子结构--Java实现
- 剑指offer-面试题18-树的子结构
- 剑指offer-面试题 18:树的子结构
- Iava 剑指offer_面试题18_树的子结构
- 剑指offer面试题18-树的子结构
- 剑指offer-面试题18.树的子结构
- 剑指offer之面试题18:树的子结构
- 剑指Offer面试题18(Java版):树的子结构
- 剑指offer-面试题18:树的子结构
- 剑指Offer_面试题18_树的子结构
- [剑指offer]面试题18:树的子结构
- 剑指offer之面试题18:树的子结构
- 【剑指offer】3.4代码的鲁棒性——面试题18:树的子结构
- 【剑指Offer学习】【面试题18 :树的子结构】
- 剑指offer面试题18-树的子结构
- 【剑指Offer学习】【面试题18 :树的子结构】
- 剑指offer面试题18-:树的子结构
- 剑指offer面试题18——树的子结构(递归)