博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php实现判断树的子结构
阅读量:6081 次
发布时间:2019-06-20

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

php实现判断树的子结构

一、总结

 很简单的递归判断

 

二、php实现判断树的子结构

题目描述:

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

 

三、代码

代码一:php ac

1 
val = $val; 9 }10 }*/11 function HasSubtree($pRoot1, $pRoot2)12 {13 // write code here14 if($pRoot1 == NULL || $pRoot2 == NULL){ //1、空值判断15 return false;16 }17 return isSubtree($pRoot1, $pRoot2) ||18 HasSubtree($pRoot1->left, $pRoot2) || HasSubtree($pRoot1->right, $pRoot2);19 }20 21 function isSubtree($pRoot1, $pRoot2){22 if( $pRoot2 == NULL){23 return true;24 }25 if($pRoot1 == NULL){26 return false;27 }28 return $pRoot1->val == $pRoot2->val && isSubtree($pRoot1->left, $pRoot2->left) && isSubtree($pRoot1->right, $pRoot2->right); //2、递归判断29 }

 

 

代码二:

利用好短路特性,完全不用那么多flag

1 class Solution { 2     bool isSubtree(TreeNode* pRootA, TreeNode* pRootB) { 3         if (pRootB == NULL) return true; 4         if (pRootA == NULL) return false; 5         if (pRootB->val == pRootA->val) { 6             return isSubtree(pRootA->left, pRootB->left) 7                 && isSubtree(pRootA->right, pRootB->right); 8         } else return false; 9     }10 public:11     bool HasSubtree(TreeNode* pRootA, TreeNode* pRootB)12     {13         if (pRootA == NULL || pRootB == NULL) return false;14         return isSubtree(pRootA, pRootB) ||15             HasSubtree(pRootA->left, pRootB) ||16             HasSubtree(pRootA->right, pRootB);17     }18 };

 

转载于:https://www.cnblogs.com/Renyi-Fan/p/9061864.html

你可能感兴趣的文章
js删除数组元素
查看>>
带空格文件名的处理(find xargs grep ..etc)
查看>>
华为Access、Hybrid和Trunk的区别和设置
查看>>
centos使用docker下安装mysql并配置、nginx
查看>>
关于HTML5的理解
查看>>
需要学的东西
查看>>
Internet Message Access Protocol --- IMAP协议
查看>>
Linux 获取文件夹下的所有文件
查看>>
对 Sea.js 进行配置(一) seajs.config
查看>>
第六周
查看>>
解释一下 P/NP/NP-Complete/NP-Hard 等问题
查看>>
javafx for android or ios ?
查看>>
微软职位内部推荐-Senior Software Engineer II-Sharepoint
查看>>
sql 字符串操作
查看>>
【转】Android布局优化之ViewStub
查看>>
网络安全管理技术作业-SNMP实验报告
查看>>
根据Uri获取文件的绝对路径
查看>>
Flutter 插件开发:以微信SDK为例
查看>>
.NET[C#]中NullReferenceException(未将对象引用到实例)是什么问题?如何修复处理?...
查看>>
边缘控制平面Ambassador全解读
查看>>