ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

剑指 Offer 26. 树的子结构

2021-02-23 16:33:05  阅读:10  来源: 互联网

标签:isContain 26 right return val Offer 子结构 TreeNode null


 

思路:

  先序遍历,递归判断。

  通过先序遍历,先判断B的根节点是否等于A中的一个节点,再从这个节点开始分别判断左子树和右子树是否相同。

代码:

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public boolean isSubStructure(TreeNode A, TreeNode B) {
        if (B == null || A == null)
            return false;
        return isContain(A, B) || isSubStructure(A.left, B) || isSubStructure(A.right, B);
    }
    boolean isContain(TreeNode A, TreeNode B){
        if (B == null)
            return true;
        if (A == null || A.val != B.val)
            return false;
        return isContain(A.left, B.left) && isContain(A.right, B.right);
    }
}

标签:isContain,26,right,return,val,Offer,子结构,TreeNode,null
来源: https://www.cnblogs.com/zccfrancis/p/14436768.html

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有