美文网首页
数的结构

数的结构

作者: Haward_ | 来源:发表于2021-01-10 16:02 被阅读0次

    题目描述
    输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)

    /**
    public class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;
    
        public TreeNode(int val) {
            this.val = val;
    
        }
    
    }
    */
    import java.util.LinkedList;
    public class Solution {
        public boolean HasSubtree(TreeNode root1,TreeNode root2) {
            if(root2==null||root1==null) return false;
            LinkedList<TreeNode> queue = new LinkedList<>();
            queue.add(root1);
            while(queue.size()>0) {
                TreeNode node = queue.pollFirst();
                if(isSubTree(node,root2)) {
                    return true;
                }else{
                    if(node.left!=null) {
                        queue.add(node.left);
                    }
                    if(node.right!=null) {
                        queue.add(node.right);
                    }
                }
            }
            return false;
        }
        
        public boolean isSubTree(TreeNode root1,TreeNode root2) {
            if(root2==null) return true;
            if(root1==null && root2!=null) return false;
            if(root1.val==root2.val) {
                boolean left = isSubTree(root1.left,root2.left);
                boolean right = isSubTree(root1.right,root2.right);
                return left&right;
            }else{
                return false;
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:数的结构

          本文链接:https://www.haomeiwen.com/subject/qvakaktx.html