Redian新闻
>
弱问怎么判断两个binary tree相同?
avatar
弱问怎么判断两个binary tree相同?# JobHunting - 待字闺中
c*t
1
比较一遍in-order,再比较一遍pre-order,可以吗?
avatar
l*a
2
为什么不是root比
然后左子树与左子树比。。。

【在 c********t 的大作中提到】
: 比较一遍in-order,再比较一遍pre-order,可以吗?
avatar
g*e
3
怎么判断两个binary tree互为镜像?

【在 l*****a 的大作中提到】
: 为什么不是root比
: 然后左子树与左子树比。。。

avatar
n*s
4
是binary search tree吗?
avatar
c*t
5
对啊,我做题做糊涂了
写一个
public static boolean isSame( Node a, Node b ) {
if( a == null && b == null ) {
return true;
}else if( a != null && b != null ) {
return a.data == b.data &&
isSame( a.left, b.left ) && isSame( a.right, b.right );
}else {
return false;
}
}

【在 l*****a 的大作中提到】
: 为什么不是root比
: 然后左子树与左子树比。。。

avatar
c*t
6
bst有区别吗?

【在 n*****s 的大作中提到】
: 是binary search tree吗?
avatar
c*t
7
先翻转一个,在判断相不相同?
public void reverse(Node a){
if(a == null) return;
reverse(a.left);
Node tmp = a.left;
a.left = a.right;
a.right = tmp;
reverse(a.left);
}
可行吗?

【在 g**e 的大作中提到】
: 怎么判断两个binary tree互为镜像?
avatar
l*a
8
左跟右比,右跟左比?

【在 g**e 的大作中提到】
: 怎么判断两个binary tree互为镜像?
avatar
l*a
9
太冗余

【在 c********t 的大作中提到】
: 对啊,我做题做糊涂了
: 写一个
: public static boolean isSame( Node a, Node b ) {
: if( a == null && b == null ) {
: return true;
: }else if( a != null && b != null ) {
: return a.data == b.data &&
: isSame( a.left, b.left ) && isSame( a.right, b.right );
: }else {
: return false;

avatar
c*t
10
好像对,唉,我又弱了
写一个
public static boolean isSame( Node a, Node b ) {
if( a == null && b == null ) {
return true;
}else if( a != null && b != null ) {
return a.data == b.data &&
isSame( a.left, b.right ) && isSame( a.right, b.left );
}else {
return false;
}
}

【在 l*****a 的大作中提到】
: 左跟右比,右跟左比?
avatar
c*t
11
求简化

【在 l*****a 的大作中提到】
: 太冗余
avatar
n*s
12
a a
/ \ 跟 / \ 算同一个树吗
b c c b
avatar
t*2
13
显然不

【在 n*****s 的大作中提到】
: a a
: / \ 跟 / \ 算同一个树吗
: b c c b

avatar
n*s
14

那先BFS按照层序给所有结点标上号,然后挨个比较left child和right child行不行?

【在 t*******2 的大作中提到】
: 显然不
avatar
l*a
15
更正一下,
不要那么多else不好吗?是不是更清晰一点

【在 c********t 的大作中提到】
: 求简化
avatar
i*y
16
我用一个比较弱的办法,用level-order遍历,然后每个level用isEvenPalindrome判断
是不是true

【在 l*****a 的大作中提到】
: 左跟右比,右跟左比?
avatar
y*g
17
这个不对吧
a
/
b

a
\
b

【在 i****y 的大作中提到】
: 我用一个比较弱的办法,用level-order遍历,然后每个level用isEvenPalindrome判断
: 是不是true

avatar
c*t
18
明白了,这样行不?
public static boolean isSame( Node a, Node b ) {
if( a != null && b != null ) {
return a.data == b.data &&
isSame( a.left, b.left ) && isSame( a.right, b.right );
}
return a == null && b == null;
}

【在 l*****a 的大作中提到】
: 更正一下,
: 不要那么多else不好吗?是不是更清晰一点

avatar
i*y
19
null 需要设置为#

【在 y*******g 的大作中提到】
: 这个不对吧
: a
: /
: b
: 和
: a
: \
: b

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。