判断二叉树子结构

树的子结构

http://www.nowcoder.com/questionTerminal/6e196c44c7004d15b1610b9afca8bd88

判断二叉树子结构:
1. 先用一个深度搜索写一个判断root2是否为TreeNode子结构的函数;
2. 遍历root1的每一个结点,看是否存在以某个结点开头的输包含root2;
public boolean HasSubtree(TreeNode root1,TreeNode root2) {
        if(root1 == null || root2 == null) return false;
        return isSubTree(root1,root2) ||  HasSubtree(root1.left,root2) ||
             HasSubtree(root1.right,root2);
    }
    
   
    
    boolean isSubTree(TreeNode root1, TreeNode root2){
        if(root2 == null){
            return true;
        }else if(root1 == null){
            return false;
        }
        if(root1.val == root2.val){
            return isSubTree(root1.left,root2.left) && isSubTree(root1.right,root2.right);
        }else {
            return false;
        }
    }


全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务