二叉树的子结构的判定

来源:互联网 发布:驳程序员青春 编辑:程序博客网 时间:2024/05/16 19:23
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());    }}

0 0
原创粉丝点击