package java_study.JianZhiOffer;
/**
* Created by ethan on 2015/6/24.
* 剑指offer No18 二叉树的子结构的判定
* 递归思路
*/
public class No18树的子结构 {
public boolean treeHasSubtree(TreeNode root1, TreeNode root2){
boolean ans = false;
if (root1!=null && root2!=null){
if (root1.getValue()==root2.getValue())
ans = tree1HasTree2(root1, root2);
if (!ans)
ans = treeHasSubtree(root1.getLchild(), root2);
if (!ans)
ans = treeHasSubtree(root1.getRchild(), root2);
}
return ans;
}
public boolean tree1HasTree2(TreeNode root1, TreeNode root2){
if (root2==null)
return true;
if (root1==null)
return false;
if (root1.getValue()!=root2.getValue())
return false;
return tree1HasTree2(root1.getLchild(), root2.getLchild()) && tree1HasTree2(root1.getRchild(), root2.getRchild());
}
}
二叉树的子结构的判定
最新推荐文章于 2020-04-27 09:48:34 发布