lintcode,子树
来源:互联网 发布:淘宝上的gucci是真的吗 编辑:程序博客网 时间:2024/06/10 13:09
有两个不同大小的二进制树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。
样例
下面的例子中 T2 是 T1 的子树:
1 3
/ \ /
T1 = 2 3 T2 = 4
/
4
下面的例子中 T2 不是 T1 的子树:
1 3
/ \ \
T1 = 2 3 T2 = 4
/
4
一刷没ac
解题思路:递归实现,要注意细节,比如T2为空则true,T1为空就false,后面就是判断左子树右子树或者两棵树是否相同的比较了。
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */public class Solution { /** * @param T1, T2: The roots of binary tree. * @return: True if T2 is a subtree of T1, or false. */ public boolean isSubtree(TreeNode T1, TreeNode T2) { if(T2 == null) return true; if(T1 == null) return false; return isSubtree(T1.left, T2)||isSubtree(T1.right, T2)||dfs(T1, T2); } public boolean dfs(TreeNode T1, TreeNode T2){ if(T1 == null && T2 == null) return true; if(T1 == null || T2 == null) return false; if(T1.val == T2.val) return dfs(T1.left, T2.left) && dfs(T1.right, T2.right); return false; }}
0 0
- LintCode 子树
- lintcode-子树
- lintcode ----子树
- lintcode,子树
- LintCode 子树
- 子树-LintCode
- LintCode-子树
- Lintcode 子树
- lintcode子树
- LintCode 子树
- LintCode 子树
- 子树-LintCode
- 子树(LintCode)
- lintcode subtree 子树
- lintcode——子树
- [LintCode]245.子树
- LintCode-剑指Offer-(245)子树
- lintcode-递归-简单-245子树
- Html+Css+Javascript项目实战
- struct _TBBUTTON 结构;在win32和win64下进行条件编译
- Mysql 按照日、周、月、季度、年统计数据
- webservice的使用
- WEB前端之HTML5[5]~HTML5增强的页面元素
- lintcode,子树
- Java学习之运算符、表达式
- 项目 1 - 验证算法之(3)冒泡排序
- 51nod 1087 1 10 100 1000【递推】
- medalRecorder录制音频。
- 【Unity】扒一扒Profiler中这几个“占坑鬼”
- HDU 1253 胜利大逃亡(BFS)
- AS项目转到eclipse中方法(好用的方法)
- structs2 项目开发总结