码迷,mamicode.com
首页 > 其他好文 > 详细

判断T2是否是T1的子树

时间:2014-08-22 22:32:39      阅读:457      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   div   log   amp   sp   on   ef   

基本模仿CC150上的思路,递归地在t1中寻找能与t2的根相同的节点,作为开始比较的开始点,然后递归的比较两个树是否相等。

 

boolean containsTree(TreeNode t1, TreeNode t2){
    if(t2==null)
        return true;
    
    return subTree(t1,t2);
}


boolean subTree(TreeNode t1, TreeNode t2){
    if(t1==null)
        return false;
    if(t1.val ==t2.val){
        if(matchTree(t1,t2))
            return true;
    }
    return subTree(t1.left,t2)||subTree(t1.right,t2);    
}


boolean matchTree(TreeNode t1, TreeNode t2){
    if(t1==null&&t2==null)
        return true;
    if(t1==null||t2==null)
        return false;
    
    if(t1.val!=t2.val)
        return false;
    
    return matchTree(t1.left,t2.left)&&matchTree(t1.right,t2.right);
}

 

判断T2是否是T1的子树

标签:style   blog   color   div   log   amp   sp   on   ef   

原文地址:http://www.cnblogs.com/jdflyfly/p/3930333.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!