面试题:树的子结构

题目描述

思路:先在A树中先找到和B树根节点一样的值 然后判断二者结构是否相同

public class Solution {
    public boolean HasSubtree(TreeNode root1,TreeNode root2) {
        boolean result=false;
        if(root1!=null&&root2!=null){
            if(root1.val==root2.val)
                result=doesTree1Tree2(root1,root2);
            if(!result) {result=HasSubtree(root1.left,root2);}
            if(!result) {result=HasSubtree(root1.right,root2);}
        }
        return result;
    }
    public boolean doesTree1Tree2(TreeNode root1,TreeNode root2) {
        if(root1==null&&root2!=null) return false;
        if(root2==null) return true;
        if(root1.val!=root2.val) return false;
        return doesTree1Tree2(root1.left,root2.left)&&doesTree1Tree2(root1.right,root2.right);
    }
}
原文地址:https://www.cnblogs.com/Aaron12/p/9533127.html