由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 判断一个树是不是另一个树的子树?
相关主题
amazon on-site interviewMS面试题
这个Binary Tree的题来看看请教一个BST找Median的题目
如何判断一个tree是另外一个tree的subtree?How to find the kth biggest number in a BST
[Algo] 检查一个树是另一个的子树为何找不到很多apple的面筋
微软面试的一道题BST 找重复节点数
分享一道面试题一道非常伪善的面试题
EPI 题目g家面经
问道题请教一道题
相关话题的讨论汇总
话题: equal话题: subtree话题: 子树话题: 判断话题: 是不是
进入JobHunting版参与讨论
1 (共1页)
g*l
发帖数: 385
1
有啥好办法. 树可以是 BST or BT
l*****a
发帖数: 14598
2
digui
没啥别的好办法

【在 g*l 的大作中提到】
: 有啥好办法. 树可以是 BST or BT
g*l
发帖数: 385
3
具体咋递归的. 有 code 就容易明白了.

【在 l*****a 的大作中提到】
: digui
: 没啥别的好办法

g*********s
发帖数: 1782
4
is_subtree(x, y) ::= is_equal(x, y) || is_subtree(x, y.left) ||
is_subtree(x, y.right)
is_equal(x, y) ::= x.dat == y.dat && is_equal(x.left, y.left) &&
is_equal(x.right, y.right)

【在 g*l 的大作中提到】
: 具体咋递归的. 有 code 就容易明白了.
g*l
发帖数: 385
5
这个好想很不效率啊. 从根往下搜索. 我想能不能先在母树中找小书的根. 然后在看这
个子树和小树是不是
一样. 也就是说, 只要 call is_equal(x, y) once.
另外, 你这个 is_equal(x, y) 的 base case 是啥?

【在 g*********s 的大作中提到】
: is_subtree(x, y) ::= is_equal(x, y) || is_subtree(x, y.left) ||
: is_subtree(x, y.right)
: is_equal(x, y) ::= x.dat == y.dat && is_equal(x.left, y.left) &&
: is_equal(x.right, y.right)

l*****a
发帖数: 14598
6
你找小树的根咋找?
如果BST还容易点
BT的话,不是得当前节点,左子节点,右子节点都判断吗?
有啥省事的办法吗

【在 g*l 的大作中提到】
: 这个好想很不效率啊. 从根往下搜索. 我想能不能先在母树中找小书的根. 然后在看这
: 个子树和小树是不是
: 一样. 也就是说, 只要 call is_equal(x, y) once.
: 另外, 你这个 is_equal(x, y) 的 base case 是啥?

z*s
发帖数: 209
7
只看树的形状,还是节点存的值也要比较?
l*****a
发帖数: 14598
8
当然要比较值

【在 z*s 的大作中提到】
: 只看树的形状,还是节点存的值也要比较?
i**********e
发帖数: 1145
9
top-down DFS 太慢了,
用 bottom-up DFS 就行。
用以下类似的思路就能解:
http://www.ihas1337code.com/2010/11/largest-binary-search-tree-
一些常见面试题的答案与总结 -
http://www.ihas1337code.com
1 (共1页)
进入JobHunting版参与讨论
相关主题
请教一道题微软面试的一道题
一道二叉树的老题分享一道面试题
一道G家题目的思路EPI 题目
一道关于电话pad的面试题问道题
amazon on-site interviewMS面试题
这个Binary Tree的题来看看请教一个BST找Median的题目
如何判断一个tree是另外一个tree的subtree?How to find the kth biggest number in a BST
[Algo] 检查一个树是另一个的子树为何找不到很多apple的面筋
相关话题的讨论汇总
话题: equal话题: subtree话题: 子树话题: 判断话题: 是不是