博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【重点递归】剑指offer——面试题18:树的子结构
阅读量:2254 次
发布时间:2019-05-09

本文共 1146 字,大约阅读时间需要 3 分钟。

剑指offer——面试题18:树的子结构

Solution1:

此题答案是抄的书上的,要记忆并熟练运用关于二叉树的递归思想!!!

/*struct TreeNode {    int val;    struct TreeNode *left;    struct TreeNode *right;    TreeNode(int x) :            val(x), left(NULL), right(NULL) {    }};*/class Solution {public:    bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2){        bool result = false;        //先找到相同的根结点的值        if(pRoot1 != NULL && pRoot2 != NULL){            if(pRoot1->val == pRoot2->val)                result = DoesTree1HaveTree2(pRoot1, pRoot2);            if(!result)                result = HasSubtree(pRoot1->left, pRoot2);            if(!result)                result = HasSubtree(pRoot1->right, pRoot2);        }        return result;    }    //判断子树结构是否一致    bool DoesTree1HaveTree2(TreeNode* pRoot1, TreeNode* pRoot2){        if(pRoot2 == NULL) //已经到达树2的根结点,返回true            return true;        if(pRoot1 == NULL) //已经到了树1的根结点,但还未到达树2的根结点,返回false            return false;        if(pRoot1->val != pRoot2->val) //值不相同,则返回false            return false;        //递归判断        return DoesTree1HaveTree2(pRoot1->left, pRoot2->left) && DoesTree1HaveTree2(pRoot1->right, pRoot2->right);    }};

转载地址:http://zxhdb.baihongyu.com/

你可能感兴趣的文章
Python-Redis的Hash操作
查看>>
Python-Redis的Set操作
查看>>
Python-连接Redis并操作
查看>>
Python-Redis的发布与订阅
查看>>
Python-RabbitMQ消息队列的发布与订阅
查看>>
Python-实现与metasploit交互并进行ms17_010攻击
查看>>
Python-通过socket实现一个小型的端口检测工具
查看>>
Python-IO多路复用
查看>>
Python-通过调用Nmap来进行端口扫描
查看>>
Python-元组
查看>>
Python-IO模式介绍
查看>>
Python-列表
查看>>
PHP文件包含
查看>>
Python-字典
查看>>
Python-RabbitMQ消息队列
查看>>
Python-RabbitMQ消息队列实现rpc
查看>>
PHP-错误处理
查看>>
Python模块-subprocess模块
查看>>
PHP-上传文件
查看>>
Nmap几个常用的参数
查看>>