美文网首页
leetcode 剑指 Offer 26. 树的子结构

leetcode 剑指 Offer 26. 树的子结构

作者: flood_d | 来源:发表于2021-02-01 09:19 被阅读0次

    0.code

    /**
     * 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 isSubStructureHelp1(A,B);
        }
    
        public boolean isSubStructureHelp1(TreeNode A, TreeNode B) {
            if(B==null||A==null){
                return false;
            }
            boolean flag = false;
            if(A.val==B.val){
                flag = isSubStructureHelp2(A.left,B.left)&&isSubStructureHelp2(A.right,B.right);
            }
            if(!flag){
                flag = isSubStructureHelp1(A.left,B)||isSubStructureHelp1(A.right,B); 
            }
            return flag;
        }
    
        public boolean isSubStructureHelp2(TreeNode A, TreeNode B) {
            if(A==null&&B==null){
                return true;
            }
            if(A==null&&B!=null){
                return false;
            }
            if(A!=null&&B==null){
                return true;
            }
            if(A.val!=B.val){
                return false;
            }
            if(isSubStructureHelp2(A.left,B.left)&&isSubStructureHelp2(A.right,B.right)){
                return true;
            }
            return false;
        }
    }
    

    相关文章

      网友评论

          本文标题:leetcode 剑指 Offer 26. 树的子结构

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