【发布时间】:2012-01-16 05:19:45
【问题描述】:
测试树是否对称的基本算法是什么。因为它是一棵二叉树,我会假设它是排序的递归定义
正式问题如下:
如果二叉树的左右子树是相同的镜像,即二叉树是对称的,则二叉树是自身的镜像。 最好用几个例子来解释这一点。
1
/ \
2 2
是的
1
/ \
2 2
\
3
错误
1
/ \
2 2
/ \ / \
4 3 3 4
是的
1
/ \
2 2
/ \ / \
3 4 3 4
错误
1
/ \
2 2
/ \
3 3
是的
在选择的编程语言中,定义 BTree 类/C 结构和关联方法以检查树是否为镜像。对于静态类型语言,您可以假设节点值都是整数。
Class/structure definition
BTree {
BTree left;
BTree right;
int value;
}
假设调用者跟踪树的根,并在其上调用函数 isMirror()。
此外,如果定义一个类,如果数据元素不可公开访问,请确保提供无参数构造函数和 getter/setter 方法。
【问题讨论】:
标签: algorithm language-agnostic data-structures binary-tree