zoukankan      html  css  js  c++  java
  • JZ017树的子结构

    树的子结构

    题目描述

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

    题目链接: 树的子结构

    代码

    /**
     * 标题:树的子结构
     * 题目描述
     * 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
     * 题目链接:
     * https://www.nowcoder.com/practice/6e196c44c7004d15b1610b9afca8bd88?tpId=13&&tqId=11170&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
     */
    public class Jz17 {
    
        public static void main(String[] args) {
            TreeNode root1 = new TreeNode(2);
            TreeNode root2 = new TreeNode(2);
    
            Jz17 jz17 = new Jz17();
            System.out.println(jz17.hasSubtree(root1, root2));
        }
    
        public boolean hasSubtree(TreeNode root1, TreeNode root2) {
            if (root1 == null || root2 == null) {
                return false;
            }
    
            return isSubtreeWithRoot(root1, root2) || hasSubtree(root1.left, root2) || hasSubtree(root1.right, root2);
        }
    
        /**
         * 递归法
         *
         * @param root1
         * @param root2
         * @return
         */
        private boolean isSubtreeWithRoot(TreeNode root1, TreeNode root2) {
            if (root2 == null) {
                return true;
            }
            if (root1 == null) {
                return false;
            }
            if (root1.val != root2.val) {
                return false;
            }
            return isSubtreeWithRoot(root1.left, root2.left) && isSubtreeWithRoot(root1.right, root2.right);
        }
    }
    

    【每日寄语】 总之岁月漫长,然而值得等待。

  • 相关阅读:
    AudioToolbox学习(转)
    ios5键盘问题
    何时使用self.
    ios判断邮箱,手机号码,车牌号是否合法(正则表达)
    将图片重新绘制
    在UITableViewCell中获取所在的行数以及去除选中状态
    根据UIView获取其UIViewController
    在iOS中将string转成UTF8编码
    SQL提高性能
    oracle创建口令文件
  • 原文地址:https://www.cnblogs.com/kaesar/p/15651492.html
Copyright © 2011-2022 走看看