zoukankan      html  css  js  c++  java
  • 树的子结构

    较难  通过率:24.66%  时间限制:1秒  空间限制:64M
     
    知识点二叉树
    • 题目
    • 题解(69)
    • 讨论(1k)
    • 排行

    描述

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

    示例1

    输入:
    {8,8,#,9,#,2,#,5},{8,9,#,2}
    返回值:
    true
    
     
     
    /*
    struct TreeNode {
        int val;
        struct TreeNode *left;
        struct TreeNode *right;
        TreeNode(int x) :
                val(x), left(NULL), right(NULL) {
        }
    };*/
    class Solution {
    public:
        
        bool dfs(TreeNode* node1,TreeNode* node2){
            if(node2 == NULL) return true;
            
            if(node1 == NULL) return false;
            
            if(node1->val == node2->val){
                return dfs(node1->left,node2->left) && dfs(node1->right,node2->right);
            }
            
            return false;
        }
        
        
    
        
        bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2) {
            
            bool result = false;
            if(pRoot1 && pRoot2){
                
                
                if(pRoot1->val == pRoot2->val) {
                    result = dfs(pRoot1,pRoot2);
                }
                
                if(!result) result = HasSubtree(pRoot1->left,pRoot2);
                
                if(!result) result = HasSubtree(pRoot1->right,pRoot2);
                    
                    
            }
            
            return result;
        }
    };

    java+注释

    https://www.cnblogs.com/lishanlei/p/10707732.html

  • 相关阅读:
    DS博客作业02--栈和队列
    DS博客作业02--线性表
    c博客06-结构
    c博客作业05--指针
    C博客作业04--数组
    博客作业03-函数
    循环结构
    c博客作业01--分支、顺序结构
    我的第一篇博客
    Macos安装JDK1.8
  • 原文地址:https://www.cnblogs.com/cunyusup/p/14910891.html
Copyright © 2011-2022 走看看