首页 > 其他 > 详细

剑指offer树的子结构

时间:2020-08-26 15:31:36      阅读:95      评论:0      收藏:0      [点我收藏+]

题目

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

说明

B是A的子结构, 即 A中有出现和B相同的结构和节点值。

思路

使用递归,将A,B进行判断是否相等,如果不等,就判断A的左右子树是否与B相等,直到为空,判断A与B是否相等是指从A、B的根节点开始遍历数,遍历完的值一直相等直到B为空

代码

public boolean isSubStructure(TreeNode A, TreeNode B) {
    if(A==null||B==null)return false;
    return judge(A,B)||isSubStructure(A.left,B)||isSubStructure(A.right,B);
}
private boolean judge(TreeNode A, TreeNode B){
    if(A==null||B==null){
        return B==null;
    }
    return (A.val==B.val)&&judge(A.left,B.left)&&judge(A.right,B.right);
}

剑指offer树的子结构

原文:https://www.cnblogs.com/keke-coding/p/13565109.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!