题解 | #树的子结构#

树的子结构

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

暴力emmmm

/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
import java.util.*;
public class Solution {
    public boolean HasSubtree(TreeNode root1,TreeNode root2) {
        if(root1 == null || root2 == null){
            return false;
        }
        TreeNode root = root1;
        boolean b = false;
        TreeNode uu=null;
        TreeNode yy=null;
        Queue<TreeNode> queue = new LinkedList<TreeNode>();
        Queue<TreeNode> queue1 = new LinkedList<TreeNode>();
        Queue<TreeNode> queue2 = new LinkedList<TreeNode>();
        queue.offer(root1);
        while(true){
            root1 = queue.element();
            if(root1.val == root2.val){
                
                    queue1.offer(root1);
                    queue2.offer(root2);
                    while(true){
                        uu = queue1.poll();
                        yy = queue2.poll();
                        if(uu.left !=null && yy.left != null){
                            if(uu.left.val != yy.left.val ){
                                break;
                            }

                        }
                        if(uu.left == null){
                            if(yy.left != null){
                                break;
                            }
                        }

                        if(uu.right !=null && yy.right != null){
                            if(uu.right.val != yy.right.val ){
                                break;
                            }

                        }
                        if(uu.right == null ){
                            if(yy.right != null){
                                break;
                            }
                        }

                        if(uu.left!=null){queue1.offer(uu.left);}
                        if(uu.right != null){ queue1.offer(uu.right);}
                        if(yy.left != null){queue2.offer(yy.left);}
                        if(yy.right != null){queue2.offer(yy.right);}
                        if(queue2.isEmpty()){
                            b=true;
                            break;
                        }
                    }
               }
                queue2.clear();
                queue1.clear();
                root1 = queue.poll();
                if(root1.left != null){
                    queue.offer(root1.left);
                }
                if(root1.right != null){
                    queue.offer(root1.right);
                }
                if(queue.isEmpty() || b==true){
                    break;
                }
            
        }
        return b;
    }
}















全部评论

相关推荐

今天 11:41
门头沟学院 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 11:24
大家还是用ai改吧,我心疼得要死,就当花钱买教训吧,人家直接拿完钱就跑路了
程序员小白条:简历修改700....神奇,又不是帮你面试,咋的,简历修改从双非变92了还是没实习变成有大厂实习了
点赞 评论 收藏
分享
07-07 12:47
门头沟学院 Java
码农索隆:竟然还真有卡体检报告的
点赞 评论 收藏
分享
06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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