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

剑指Offer(书):树的子结构

时间:2018-08-09 13:49:49      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:color   res   nod   递归   val   pre   col   vat   分析   

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

分析:关于二叉树大部分适应于递归结构。

public boolean HasSubtree(TreeNode root1, TreeNode root2) {
    boolean result = false;
    if (root1 != null && root2 != null) {
        if (root1.val == root2.val) {
            result = DoesTreeHaveTree(root1, root2);
        }
        if (!result) {
            result = HasSubtree(root1.left, root2);
        }
        if (!result) {
            result = HasSubtree(root1.right, root2);
        }
    }
    return result;
}

private boolean DoesTreeHaveTree(TreeNode root1, TreeNode root2) {
    if (root2 == null) {
        return true;
    }
    if (root1 == null) {
        return false;
    }
    if (root1.val != root2.val) {
        return false;
    }
    return DoesTreeHaveTree(root1.left, root2.left) && DoesTreeHaveTree(root1.right, root2.right);
}

 

剑指Offer(书):树的子结构

标签:color   res   nod   递归   val   pre   col   vat   分析   

原文地址:https://www.cnblogs.com/liter7/p/9448208.html

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