LintCode 子树
2016-04-11 11:07
337 查看
easy 子树
19%通过有两个不同大小的二进制树:T1有上百万的节点;
T2有好几百的节点。请设计一种算法。判定
T2是否为
T1的子树。您在真实的面试中是否遇到过这个题?Yes例子以下的样例中 T2 是 T1 的子树:
1 3 / \ / T1 = 2 3 T2 = 4 / 4以下的样例中 T2 不是 T1 的子树:
1 3 / \ \ T1 = 2 3 T2 = 4 / 4
/*** Definition of TreeNode:* class TreeNode {* public:* int val;* TreeNode *left, *right;* TreeNode(int val) {* this->val = val;* this->left = this->right = NULL;* }* }*/class Solution {public:/*** @param T1, T2: The roots of binary tree.* @return: True if T2 is a subtree of T1, or false.*/bool isSubtree(TreeNode *T1, TreeNode *T2) {bool result = false;if (T2 == nullptr) {return true;}if (T1 == nullptr) {return false;}// write your code hereif (T1->val == T2->val) {result = dp(T1,T2);}if (!result) {result = isSubtree(T1->left,T2);}if (!result) {result = isSubtree(T1->right,T2);}return result;}bool dp (TreeNode *T1, TreeNode *T2) {if (T1 != nullptr && T2!=nullptr && T1->val == T2->val) {return dp(T1->left,T2->left) && dp (T1->right,T2->right);}if (T1 == nullptr && T2 == nullptr) {return true;}return false;}};
相关文章推荐
- You Don't Know JS: Scope & Closures(翻译)
- 字典树再战
- android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法
- Cstring 与 char*的转换,TCHAR 与 char 转换
- 从Solr卡顿到G1垃圾回收
- ajax跨域请求
- linux 环境配置文
- scp命令使用说明
- jquery validate应该注意的小问题
- C语言内存字节对齐小结
- 实现Timeline
- nodejs之处理GET请求
- C#程序集使用强名字(Strong Name)签名/强名称签名
- Java 单例真的写对了么?
- 学学下拉刷新
- 详解Android 手机卫士设置向导页面
- 【OpenCV】OpenCV配置—VS2012+win8版
- 报表软件JS开发引用HTML DOM的windows对象
- LeetCode 287 -Find the Duplicate Number ( JAVA )
- Redis简述