zoukankan      html  css  js  c++  java
  • [leetCode]剑指 Offer 26. 树的子结构

    在这里插入图片描述

    解法递归

    求解过程可以分为两步:
    1. 遍历A中节点,找到与B中根节点相同的节点
    第一步可以使用递归实现线序遍历
    2. 判断是否存在相同的结构
    第二步可以可以使用递归判断A、B左右子树结构是否相同

    /**
     * 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) {
            boolean result = false;
            if(A != null && B != null){
                if(A.val == B.val){
                    result = doseTreeAHasTreeB(A, B);
                }
                if(!result)
                    result = isSubStructure(A.left, B);
                if(!result)
                    result = isSubStructure(A.right,B);
            }
            return result;
        }
    
        private boolean doseTreeAHasTreeB(TreeNode A, TreeNode B){
            if(B == null)
                return true;
            if(A == null)
                return false;
            if(A.val != B.val)
                return false;
            return doseTreeAHasTreeB(A.left,B.left) && doseTreeAHasTreeB(A.right, B.right);
        }
    }
    
  • 相关阅读:
    PHP获取当前页面完整URL的方法
    PHP中常见的提示对照表
    PHP语言中使用JSON和将json还原成数组
    PHP中被定义为false的
    yum
    PHP中计划任务
    command shell 的知识整理
    js的包管理工具bower安装
    Shell脚本
    liunx中计算机壳层
  • 原文地址:https://www.cnblogs.com/PythonFCG/p/13859964.html
Copyright © 2011-2022 走看看